原文地址:http://blog.jboost.cn/2019/07/14/docker-3.html
Docker分為Docker CE社群免費版與Docker EE企業收費版。Docker EE主要是在安全性及映象、容器高階管理方面提供了一些額外的支援。對於中小型企業、團隊或個人來說,用Docker CE即可。
1. 安裝Docker CE
Docker CE有三個更新渠道:
- Stable:提供最新的GA(General Availability)穩定版,每六個月一版,如 18.09 表示18年9月版,下一版就是19.03——19年3月版
- Test:提供GA之前的Pre-release版
- Nightly:提供最新的build版本,每天一版
我們一般使用stable版。Docker CE支援在多種作業系統下安裝,本文只介紹比較常見的Ubuntu 18.04 LTS、CentOS7、及Windows 10上的安裝與配置。
1.1 Ubuntu 18.04 LTS 上安裝
Docker CE支援的64位Ubuntu系統版本為
- Cosmic 18.10
- Bionic 18.04 (LTS)
- Xenial 16.04 (LTS)
Docker CE在Ubuntu上支援 overlay2, aufs, 以及 btrfs 幾種儲存驅動程式,對於Linux核心版本為4或以上系統的安裝,Docker CE預設使用 overlay2,如果需要使用 aufs,則需要手動配置(參考: Use the AUFS storage driver)
1. 解除安裝舊版本
如果系統安裝有舊版本,舊版本命名為 docker, docker.io,或docker.engine,可使用如下命令進行解除安裝
$ sudo apt-get remove docker docker-engine docker.io containerd runc
目錄/var/lib/docker下的內容,包括映象、容器、資料卷、網路等,會被保留。
2. 使用APT安裝
apt源使用HTTPS來確保軟體下載過程中不被篡改,所以首先新增使用HTTPS傳輸需要的軟體包以及CA證書
$ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
為了確認下載軟體包的合法性,新增Docker官方的GPG key:
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ gpg | sudo apt-key add -
由於國內網路原因,我們一般要使用國內源,否則安裝將會灰常灰常慢。向source.list中新增Docker軟體源(以下命令新增的是stable版本的APT映象源,如果需要test或nightly版,將stable改為對應test或nightly即可)
$ sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable"
然後,便可更新apt軟體包快取,開始安裝了
$ sudo apt-get update $ sudo apt-get install docker-ce
以上命令預設會安裝軟體源裡的最新版本,如果需要安裝指定版本,則可通過檢視可用版本,然後指定版本安裝,檢視版本
$ apt-cache madison docker-ce
安裝指定版本
$ sudo apt-get install docker-ce=<VERSION_STRING>
3. 使用指令碼自動安裝
Docker提供了一個方便的安裝指令碼來在開發測試環境安裝Docker CE的edge或測試版,Ubuntu上可使用這套指令碼來安裝Docker CE的edge版
$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun
4. 啟動Docker CE
$ sudo systemctl enable docker #開啟開機自動啟動 $ sudo systemctl start docker #啟動docker
5. 使用者組配置
docker命令預設是使用Unix socket與Docker引擎進行通訊(回顧下除了Unix socket還有REST API及網路埠),只有root使用者或docker使用者組裡的使用者才有許可權訪問Docker引擎的Unix socket,因此,需要將使用docker的使用者加入docker使用者組(處於安全考慮,一般儘量不要直接使用root使用者來操作)
$ sudo groupadd docker #新增docker使用者組 $ sudo usermod -aG docker $USER #將當前使用者加到docker使用者組
退出賬號重新登入即可。
6. 測試安裝是否成功
$ docker run hello-world
如果顯示如下圖,則說明安裝已成功
7. 解除安裝
$ sudo apt-get purge docker-ce
以上命令可以解除安裝docker-ce,但是之前的映象、容器、資料卷等不會自動刪除,可通過如下命令徹底刪除
$ sudo rm -rf /var/lib/docker
1.2 CentOS 7 上安裝
Docker CE支援64位的CentOS7,並且要求核心版本不低於3.10。CentOS 7滿足最低核心的要求,但由於版本較低,一些功能(如 overlay2 儲存層驅動)無法使用,並且部分功能可能不太穩定。
可以通過uname -r
命令來檢視系統核心版本,如
[root@iZwz9dbodbaqxj1gxhpnjxZ ~]# uname -r 3.10.0-957.1.3.el7.x86_64
1. 解除安裝舊版本
如果安裝了舊版本,需要先解除安裝。舊版本的Docker稱為docker或者docker-engine,解除安裝命令
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
2. 使用yum安裝
安裝依賴包
$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
由於國內網路原因,我們一般要使用國內源,否則安裝可能會灰常灰常慢。新增yum軟體源
$ sudo yum-config-manager \ --add-repo \ https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce .repo
如果要安裝nightly或test版,執行如下對應的命令
$ sudo yum-config-manager --enable docker-ce-nightly # 啟用nightly, 將--enbale改為disable又可以禁用 $ sudo yum-config-manager --enable docker-ce-test # 啟用test
安裝最新版本
$ sudo yum makecache fast # 更新軟體源快取 $ sudo yum install docker-ce # 安裝最新版本
安裝指定版本
$ sudo yum list docker-ce --showduplicates | sort -r # 列出可用版本 $ sudo yum install docker-ce-<VERSION_STRING> # 安裝指定版本
3. 使用指令碼自動安裝
執行如下命令,則會自動安裝Docker CE的edge版,注意只在開發或測試環境這麼用(建議最好還是用stable版)
$ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun
4. 啟動Docker CE
$ sudo systemctl enable docker #開啟開機自動啟動 $ sudo systemctl start docker #啟動docker
5. 使用者組配置
docker命令預設是使用Unix socket與Docker引擎進行通訊(回顧下除了Unix socket還有REST API及網路埠),只有root使用者或docker使用者組裡的使用者才有許可權訪問Docker引擎的Unix socket,因此,需要將使用docker的使用者加入docker使用者組(處於安全考慮,一般儘量不要直接使用root使用者來操作)
$ sudo groupadd docker #新增docker使用者組 $ sudo usermod -aG docker $USER #將當前使用者加到docker使用者組
退出賬號重新登入即可。
6. 測試安裝是否成功
$ docker run hello-world
如果顯示如下圖,則說明安裝已成功
如果在 CentOS 中使用 Docker CE 看到下面的這些警告資訊:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
可以新增核心配置引數以啟用這些功能。
$ sudo tee -a /etc/sysctl.conf <<-EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF
然後重新載入 sysctl.conf 即可
$ sudo sysctl -p
7. 解除安裝
$ sudo yum remove docker-ce # 解除安裝docker-ce $ sudo rm -rf /var/lib/docker # 該目錄下的映象、容器、資料卷、網路等不會自動刪除
1.3 Windows 10 上安裝
windows 10上的安裝非常簡單,直接下載stable版本安裝。
安裝完後,在 Windows 搜尋欄輸入 Docker 點選 Docker for Windows 開始執行
2. 配置國內映象
Docker預設是從Docker Hub(官方的映象倉庫)拉取映象的,國內訪問一般會比較慢,因此可以配置一些映象加速器,很多雲服務商提供了自己的加速器服務,如Azure中國,阿里雲(需要登入獲取),七牛雲等。
Ubuntu、CentOS上,配置國內映象只需要在/etc/docker/daemon.json中寫入如下內容(如果檔案不存在則建立一個)
{ "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://reg-mirror.qiniu.com" ] }
然後重新啟動服務
$ sudo systemctl daemon-reload $ sudo systemctl restart docker
對於Windows 10,在系統右下角托盤Docker圖示上右鍵選單選擇 Settings ,開啟配置視窗後在左側導航選單選擇 Daemon 。在 Registry mirrors 一欄中填寫加速器地址 https://dockerhub.azk8s.cn ,之後點選Apply 儲存, Docker 就會自動重啟並應用配置的映象地址了。
可以通過docker info
命令來檢查加速器是否生效,如果執行命令能看到類似如下資訊,則說明加速器配置生效了。
Registry Mirrors: https://dockerhub.azk8s.cn/
3. 總結
Docker分Docker CE與Docker EE兩個版本,對大多數人來說,一般使用Docker CE就行了。我們在安裝Docker CE時,最好安裝stable版,比較穩定可靠。同時,Linux安裝時,記得配置Docker軟體源,不然有可能太慢。安裝完後,需要配置映象加速器,加快映象的下載速度。工具有了,接下來就是探索實踐了,加油吧少年!
我的個人部落格地址:http://blog.jboost.cn
我的微信公眾號:jboost-ksxy (一個不只有技術乾貨的公眾號,歡迎關注,及時獲取更新內容)
—————————————————————————————————————————————