前提條件
操作系統要求
要安裝Docker Engine,您需要一個CentOS 7或8的維護版本。不支持或未測試存檔版本。
該centos-extras
庫必須啟用。默認情況下,此存儲庫是啟用的,但是如果已禁用它,則需要 重新啟用它。
overlay2
建議使用存儲驅動程序。
卸載舊版本
較舊的Docker版本稱為docker
或docker-engine
。如果已安裝這些程序,請卸載它們以及相關的依賴項。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
如果yum
報告未安裝這些軟件包,則可以。
的內容(/var/lib/docker/
包括圖像,容器,卷和網絡)被保留。現在將Docker Engine軟件包稱為docker-ce
。
安裝方法
您可以根據需要以不同的方式安裝Docker Engine:
- 大多數用戶會 設置Docker的存儲庫並從中進行安裝,以簡化安裝和升級任務。這是推薦的方法。
- 一些用戶下載並手動安裝RPM軟件包, 並完全手動管理升級。這在諸如在無法訪問互聯網的空白系統上安裝Docker的情況下非常有用。
- 在測試和開發環境中,一些用戶選擇使用自動 便利腳本來安裝Docker。
使用存儲庫安裝
在新主機上首次安裝Docker Engine之前,需要設置Docker存儲庫。之后,您可以從存儲庫安裝和更新Docker。
設置存儲庫
安裝yum-utils
軟件包(提供yum-config-manager
實用程序)並設置穩定的存儲庫。
$ sudo yum install -y yum-utils
# 官方源
# $ sudo yum-config-manager \
# --add-repo \
# https://download.docker.com/linux/centos/docker-ce.repo
# 阿里源
$ sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
$ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
可選:啟用每晚或測試存儲庫。
這些存儲庫包含在
docker.repo
上面的文件中,但默認情況下處於禁用狀態。您可以在穩定存儲庫旁邊啟用它們。以下命令啟用每晚存儲庫。$ sudo yum-config-manager --enable docker-ce-nightly
要啟用測試通道,請運行以下命令:
$ sudo yum-config-manager --enable docker-ce-test
您可以通過運行帶有標志的命令來禁用夜間或測試存儲庫 。要重新啟用它,請使用該標志。以下命令禁用夜間存儲庫。
yum-config-manager``--disable``--enable
$ sudo yum-config-manager --disable docker-ce-nightly
安裝DOCKER引擎
-
安裝最新版本的Docker Engine和容器,或轉到下一步以安裝特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
如果提示您接受GPG密鑰,請驗證指紋是否匹配
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
,如果是,則接受它。有多個Docker存儲庫嗎?
如果啟用了多個Docker存儲庫,則在未在
yum install
oryum update
命令中指定版本的情況下進行安裝或更新將始終安裝可能的最高版本,這可能不適合您的穩定性需求。Docker已安裝但尚未啟動。
docker
創建該組,但沒有用戶添加到該組。 -
要安裝特定版本的Docker Engine,請在存儲庫中列出可用版本,然后選擇並安裝:
一種。列出並排序您存儲庫中可用的版本。此示例按版本號(從高到低)對結果進行排序,並被截斷:
$ yum list docker-ce --showduplicates | sort -r docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable 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
返回的列表取決於啟用的存儲庫,並且特定於您的CentOS版本(
.el7
此示例中的后綴表示)。b。通過其完全合格的軟件包名稱安裝特定版本,該軟件包名稱是軟件包名稱(
docker-ce
)加上版本字符串(第二列),從第一個冒號(:
)一直到第一個連字符,並用連字符(-
)分隔。例如,docker-ce-18.09.1
。$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
Docker已安裝但尚未啟動。
docker
創建該組,但沒有用戶添加到該組。 -
啟動Docker
$ sudo systemctl start docker
-
通過運行
hello-world
映像來驗證是否正確安裝了Docker Engine 。$ sudo docker run hello-world
此命令下載測試圖像並在容器中運行它。容器運行時,它會打印參考消息並退出。
Docker Engine已安裝並正在運行。您需要使用sudo
來運行Docker命令。繼續進行Linux后安裝,以允許非特權用戶運行Docker命令以及其他可選配置步驟。
升級DOCKER引擎
要升級Docker Engine,請按照安裝說明,選擇要安裝的新版本。
從軟件包安裝
如果無法使用Docker的存儲庫安裝Docker,則可以下載該.rpm
發行版的 文件並手動安裝。每次要升級Docker Engine時,都需要下載一個新文件。
-
轉到https://download.docker.com/linux/centos/ 並選擇您的CentOS版本。然后瀏覽
x86_64/stable/Packages/
並下載.rpm
您要安裝的Docker版本的文件。注意:要安裝夜間或測試(預發布)軟件包,
stable
請將上述URL中的單詞更改為nightly
或test
。 了解每晚和測試頻道。 -
安裝Docker Engine,將下面的路徑更改為您下載Docker軟件包的路徑。
$ sudo yum install /path/to/package.rpm
Docker已安裝但尚未啟動。
docker
創建該組,但沒有用戶添加到該組。 -
啟動Docker
$ sudo systemctl start docker
-
通過運行
hello-world
映像來驗證是否正確安裝了Docker Engine 。$ sudo docker run hello-world
此命令下載測試圖像並在容器中運行它。容器運行時,它會打印參考消息並退出。
Docker Engine已安裝並正在運行。您需要使用sudo
來運行Docker命令。繼續執行Linux的安裝后步驟,以允許非特權用戶運行Docker命令以及其他可選配置步驟。
升級DOCKER引擎
要升級Docker Engine,請下載更新的軟件包文件,並使用 代替重復 安裝過程,並指向新文件。yum -y upgrade``yum -y install
使用便捷腳本安裝
Docker在get.docker.com 和test.docker.com上提供了方便腳本,用於將Docker Engine-Community的邊緣版本和測試版本快速且非交互地安裝到開發環境中。腳本的源代碼在 docker-install
存儲庫中。 不建議在生產環境中使用這些腳本,並且在使用它們之前,您應該了解潛在的風險:
- 腳本需要運行
root
或具有sudo
特權。因此,在運行腳本之前,應仔細檢查和審核腳本。 - 這些腳本嘗試檢測Linux發行版和版本,並為您配置軟件包管理系統。此外,腳本不允許您自定義任何安裝參數。從Docker的角度或您自己組織的准則和標准的角度來看,這可能導致不支持的配置。
- 這些腳本將安裝軟件包管理器的所有依賴項和建議,而無需進行確認。這可能會安裝大量軟件包,具體取決於主機的當前配置。
- 該腳本未提供用於指定要安裝哪個版本的Docker的選項,而是安裝了在“ edge”通道中發布的最新版本。
- 如果已使用其他機制將Docker安裝在主機上,請不要使用便捷腳本。
本示例使用get.docker.com上的腳本在Linux上安裝最新版本的Docker Engine-Community。要安裝最新的測試版本,請改用test.docker.com。在下面的每個命令,取代每次出現get
用test
。
警告:
在本地運行它們之前,請務必檢查從Internet下載的腳本。
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
<output truncated>
如果您想以非root用戶身份使用Docker,現在應該考慮使用類似以下方式將您的用戶添加到“ docker”組:
sudo usermod -aG docker <your-user>
請記住注銷並重新登錄才能生效!
警告:
將用戶添加到“泊塢窗”組后,他們可以運行容器,該容器可用於獲取Docker主機上的根特權。 有關更多信息,請參考 Docker Daemon Attack Surface。
Docker Engine-社區已安裝。它會自動在DEB
基於分發的版本上啟動。在 RPM
基於發行版的系統上,您需要使用相應的systemctl
或service
命令手動啟動它 。如消息所示,默認情況下,非root用戶無法運行Docker命令。
注意事項:
要安裝沒有root特權的Docker,請參閱 以非root用戶身份運行Docker守護程序(無根模式)。
目前,無根模式是一項實驗功能。
使用便捷腳本后升級DOCKER
如果使用便捷腳本安裝了Docker,則應直接使用包管理器升級Docker。重新運行便利程序腳本沒有任何好處,如果嘗試重新添加已經添加到主機的存儲庫,則可能導致問題。
卸載Docker
-
卸載Docker Engine,CLI和Containerd軟件包:
$ sudo yum remove docker-ce docker-ce-cli containerd.io
-
主機上的映像,容器,卷或自定義配置文件不會自動刪除。要刪除所有圖像,容器和卷:
$ sudo rm -rf /var/lib/docker
您必須手動刪除所有已編輯的配置文件。