一、安裝Docker CE
解除安裝舊版本
較舊版本的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
安裝Docker CE
您可以根據需要以不同方式安裝Docker CE:
- 大多數使用者設定Docker的倉庫並從中進行安裝,以便於安裝和升級任務。這是推薦的方法。
- 有些使用者下載RPM軟體包並手動安裝並完全手動管理升級。這在沒有訪問網際網路的系統上安裝Docker的情況下非常有用。
- 在測試和開發環境中,一些使用者選擇使用自動便捷指令碼來安裝Docker。
使用倉庫安裝
在新主機上首次安裝Docker CE
之前,需要設定Docker
倉庫。之後,您可以從倉庫安裝和更新Docker
。
設定儲存庫
安裝所需的包。
yum-utils
提供yum-config-manager
devicemapper
儲存驅動程式需要device-mapper-persistent-data
和lvm2
。$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
設定穩定儲存庫。
使用以下命令設定穩定儲存庫
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
可選:啟用
edge
和test
儲存庫。這些儲存庫包含在上面的docker.repo
$ sudo yum-config-manager --enable docker-ce-edge
$ sudo yum-config-manager --enable docker-ce-test
通過使用
--disable
標誌執行yum-config-manager
命令來禁用edge
或test
倉庫。要重新啟用,使用--enable
標誌。以下命令禁用edge
倉庫。$ sudo yum-config-manager --disable docker-ce-edge
注意:從Docker 17.06開始,穩定版本也會被推送到邊緣並測試儲存庫。
安裝DOCKER CE
安裝最新版本
安裝最新版本的
Docker CE
,或轉到下一步安裝特定版本:$ sudo yum install docker-ce
如果提示接受GPG金鑰,請確認指紋符合
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
,如果符合,則接受該指紋。執行以上命令安裝後,
Docker
已安裝但尚未啟動。並已建立docker
組,但未向該組新增任何使用者。安裝特定版本
要安裝特定版本的
Docker CE
,可列出repo
中的可用版本,然後選擇並安裝$ yum list docker-ce --showduplicates | sort -r docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
返回的列表取決於啟用的倉庫,並且特定於您的
CentOS
版本(在此示例中以.el7
字尾表示CentOS7
)。通過其完全限定的包名稱安裝特定版本
包名稱(docker-ce)加上版本字串(第2列),中間用連字元( - )分隔,
例如,
docker-ce-18.06.1.ce
$ sudo yum install docker-ce-18.06.1.ce
執行以上命令安裝後,
Docker
已安裝但尚未啟動。並已建立docker
組,但未向該組新增任何使用者。
啟動測試Docker
啟動
Docker
$ sudo systemctl start docker
通過執行
hello-world
映像驗證是否正確安裝了docker。$ sudo docker run hello-world
此命令下載
hello-world
映象並在容器中執行它。當容器執行時,它會列印訊息並退出。如果網路下載失敗,可能需要配置國內加速器,或者需要使用代理連線,可以通過下面的Linux安裝後配置進行配置
升級DOCKER CE
要升級Docker CE,選擇特定版本安裝新版本或選擇安裝最新版本。
使用包安裝
如果您無法使用Docker
儲存庫來安裝Docker
,可以下載適用於您的發行版的.rpm
檔案並手動安裝。每次要升級Docker
時都需要下載新檔案。
安裝Docker CE
CentOS
轉到https://download.docker.com/linux/centos/7/x86_64/stable/Packages/並下載要安裝的
Docker
版本的.rpm
檔案。注意:要安裝
edge
或test
包,請將上述URL中的單詞stable
更改為edge
或test
。安裝
Docker CE
,將下面的路徑更改為Docker
軟體包的路徑。如
Docker
的`docker.rpm
包在使用者主目錄下$ sudo yum install ~/docker.rpm
Docker
已安裝但尚未啟動。已建立docker
組,但未向該組新增任何使用者。
升級DOCKER CE
要升級Docker CE
,請下載較新的軟體包檔案並重復安裝過程,使用yum -y upgrade
,而不是yum -y install
,並指向新軟體包。
解除安裝 Docker CE
解除安裝Docker包:
$ sudo yum remove docker-ce
主機上的影象,容器,卷或自定義配置檔案不會自動刪除。
要刪除所有影象,容器和卷:
$ sudo rm -rf /var/lib/docker
二、Docker安裝後配置
HTTP/HTTPS代理
如果您使用HTTP
或HTTPS
代理伺服器,例如在公司設定中,您需要在Docker systemd service
檔案中新增此配置。
為Docker服務建立一個 systemd多級目錄:
$ sudo mkdir -p /etc/systemd/system/docker.service.d
建立一個名為
/etc/systemd/system/docker.service.d/http-proxy.conf
的檔案。新增HTTP_PROXY
環境變數:[Service] Environment="HTTP_PROXY=http://username:[email protected]:80/"
或者,如果您在HTTPS代理伺服器後面,建立一個名為
/etc/systemd/system/docker.service.d/https-proxy.conf
的檔案,新增HTTPS_PROXY環境變數:[Service] Environment="HTTPS_PROXY=https://username:[email protected]:80/"
如果您有自己的私有Docker倉庫,而無需代理,您可以通過
NO_PROXY
環境變數指定它們:[Service] Environment="HTTP_PROXY=http://username:[email protected]:80/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
或者, 如果您在 HTTPS 代理伺服器後面新增:
[Service] Environment="HTTPS_PROXY=https://username:[email protected]:80/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
重新整理更改:
$ sudo systemctl daemon-reload
重啟Docker:
$ sudo systemctl restart docker
驗證配置已經載入:
$ systemctl show --property=Environment docker Environment=HTTP_PROXY=http://username:[email protected]:80/
或者:
$ systemctl show --property=Environment docker Environment=HTTPS_PROXY=https://username:[email protected]:80/
以非root身份管理Docker
Docker daemon
繫結到Unix socket
而不是TCP
埠。預設情況下,Unix socket
由使用者root
擁有,而其他使用者只能使用sudo
訪問它。 Docker daemon
始終以root
使用者身份執行。
如果您不想在docker
命令前加上sudo
,可以建立一個名為docker
的Unix
組並向其新增使用者。當Docke
啟動時,它會建立一個可由docker
組成員訪問的Unix socket
。
警告
docker組授予與root使用者等效的許可權。
有關這將如何影響系統安全性的詳細資訊,請參閱Docker Daemon Attack Surface。
要建立docker組並新增您的使用者:
建立docker組
$ sudo groupadd docker
將您的使用者新增到docker組
$ sudo usermod -aG docker $USER
登出並重新登入,以便您的組成員身份生效。
驗證您是否可以在沒有
sudo
的情況下執行docker
命令.$ docker run hello-world
如果容器執行,它會列印訊息並退出,說明設定生效
如果在將使用者新增到
docker
組之前最初使用sudo
執行Docker CLI
命令,則可能會看到以下錯誤,這表示由於sudo
命令而建立的〜/.docker/
目錄的許可權不正確。WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied
要解決此問題,請刪除
〜/.docker/
目錄(它會自動重新建立,但任何自定義設定都將丟失),或使用以下命令更改其所有權和許可權:$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R $ sudo chmod g+rwx "$HOME/.docker" -R
隨系統啟動而啟動
systemd
開啟隨系統啟動
$ sudo systemctl enable docker
關閉隨系統啟動,改用disable。
$ sudo systemctl disable docker
檢視狀態
$ sudo systemctl is-enabled docker
如果需要其他自定義,請參閱自定義系統的Docker守護程式選項。