Docker
做爲一種新興的虛擬化方式,Docker
跟傳統的虛擬機方式相比具備衆多的優點。Docker
能夠更高效的利用系統資源、更快速的啓動時間、一致的運行環境、持續交付和部署、更輕鬆的遷移、更輕鬆的維護和擴展。linux
博主第一次使用Docker
就深深喜歡上了這種方式,一次配置,處處運行,不用再反反覆覆的配置環境能夠說是很是的方便了。本篇博客就來講一說Docker
的安裝及基本使用方法,後續還會不定時的更新Docker
系列博客。docker
Docker
是什麼?Docker
屬於容器
的一種技術封裝,提供更爲簡單易用的使用接口,讓開發運維人員能夠更方便快捷的使用容器
。shell
特性 | 容器 | 虛擬機 |
---|---|---|
啓動 | 秒級 | 分鐘級 |
硬盤使用 | 通常爲 MB | 通常爲 GB |
性能 | 接近原生 | 弱於 |
系統支持量 | 單機支持上千個容器 | 通常幾十個 |
從上面對比來看,容器
的各方面性能及特性是優於虛擬機
的。ubuntu
Docker
是一個開放源碼的產品,分爲 社區版(Community Edition,縮寫爲 CE)和 企業版(Enterprise Edition,縮寫爲 EE)。社區版是免費的,而企業版包含一些收費服務,通常來講我的開發者用社區版就足夠了,本篇博文的教程也只是針對社區版。windows
安裝環境及版本:centos
英文好的小夥伴也能夠直接閱讀官方文檔,本文只詳細介紹 Ubuntu
系統下的 Docker
安裝,其餘系統的安裝請自行參考官方文檔。bash
通常來講Ubuntu
系統中默認是不會安裝Docker
的,可是若是安裝了老版本的話可使用下面的命令進行卸載。運維
$ sudo apt-get remove docker docker-engine docker.io containerd runc
複製代碼
安裝Docker CE
有多種不一樣的方式:curl
設置Docker
的存儲庫,而後安裝。這種方式便於安裝及更新,也是最推薦的方式。性能
下載DEB軟件包,手動安裝並徹底手動管理升級。
在測試和開發環境中,部分用戶選擇使用自動便捷腳原本安裝Docker
。
本篇博客將介紹第一種安裝方式。
設置 Docker 存儲庫
apt
包索引:$ sudo apt-get update
複製代碼
apt
經過HTTPS使用存儲庫來安裝軟件:$ sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
複製代碼
Docker
官方 GPG 密鑰:$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
複製代碼
添加完成以後,使用下面命令進行驗證祕鑰,經過搜索指紋的最後8個字符,驗證如今是否具備指紋9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
的密鑰
$ sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
複製代碼
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
複製代碼
安裝 Docker CE
apt
包索引:$ sudo apt-get update
複製代碼
Docker CE
和 containerd
:$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
複製代碼
Docker
使用下面的命令查看Docker
的版本
$ docker -v
複製代碼
而後使用下面的命令能夠運行hello-world
程序,由於Docker
中尚未hello-world
程序的鏡像,因此會先pull
(下載)下來而後運行。
$ sudo docker run hello-world
複製代碼
若是看到打印 Hello for Docker!
說明程序已經運行成功了。
卸載 Docker
$ sudo apt-get purge docker-ce
複製代碼
$ sudo rm -rf /var/lib/docker
複製代碼
可使用下面的命令對Docker
進行啓動、關閉、重啓等操做。
# 開啓 Docker
$ sudo service docker start
# 關閉 Docker
$ sudo service docker stop
# 重啓 Docker
$ sudo service docker restart
複製代碼
也可使用systemctl
命令進行操做
# 開啓 Docker
$ sudo systemctl start docker
# 關閉 Docker
$ sudo systemctl stop docker
# 重啓 Docker
$ sudo systemctl restart docker
複製代碼
Docker 須要把應用程序及其相關的依賴打包成爲一個image
鏡像文件,這些鏡像文件能夠存儲在雲端的存儲庫中,用戶能夠將雲端的鏡像文件下載到本地,而後經過這個文件,生成Docker容器
的實例。
因此當你將你的應用程序及其依賴打包成一個image文件以後,能夠將其上傳到雲端的倉庫中,而後在任何一個裝有Docker的機器中運行便可,這就是一次配置,處處運行,能夠說是很是之方便了。
Docker
官方的倉庫是 Docker Hub,這是最重要,也是最經常使用的一個image倉庫了。
下面咱們使用上面使用過的hello-world
進行說明image
的使用。
image
列表使用下面的命令查看本地已經存在的image
文件都有哪些,能夠查看這些鏡像的名稱,標籤,鏡像ID,被建立時間,鏡像大小。
# 查看本地 image
$ sudo docker image ls
複製代碼
image
到本地使用下面的命令將image
文件從雲端下載到本地。
# 下載 image
$ sudo docker pull hello-world
複製代碼
image
使用下面的命令能夠運行image
。
$ sudo docker run hello-world
複製代碼
若是看到打印 Hello for Docker!
說明hello-world
程序已經運行成功了。
image
使用下面的命令刪除本地的image
文件。
# 刪除 image
$ sudo docker image rm -f hello-world
複製代碼
關於Docker
的知識還有不少,我會在後續的文章繼續介紹,歡迎您持續關注本博客。
更多技術文章歡迎關注個人博客主頁:JemGeek.com