安裝Docker
Docker是一個開放平臺,用于開發(fā)、發(fā)布和運行應(yīng)用程序。如果您需要在實例上安裝和使用Docker,可以參考本文,文中將介紹如何在實例上部署Docker以及一些基本的操作方法。
安裝Docker
如果需要快速在您的實例上安裝Docker,可以采用快速安裝,若希望通過命令行來安裝Docker,則可以選擇命令行安裝方式。
快速安裝
您可以單擊一鍵部署快速創(chuàng)建ROS資源棧,新建或選擇一個實例安裝Docker。
您可以通過擴展程序的方式在ECS實例上快速安裝Docker。
說明如果需要批量安裝,您可以登錄系統(tǒng)運維管理控制臺,左側(cè)菜單選擇 ,選擇Docker社區(qū)版。
使用限制
當您的操作系統(tǒng)滿足以下條件時,您可以使用擴展程序。
ECS實例必須處于運行中狀態(tài)。
ECS實例已安裝云助手,并且云助手狀態(tài)為正常。
操作系統(tǒng)
Alibaba Cloud Linux
CentOS
Ubuntu
Debian
Fedora
Windows Server
操作步驟
登錄ECS管理控制臺,找到目標ECS實例,單擊實例ID,進入實例詳情頁。
選擇
。在安裝擴展程序對話框,要安裝的擴展程序選擇Docker社區(qū)版,然后單擊下一步,按照界面提示完成操作。
當任務(wù)狀態(tài)為已完成時,說明Docker已安裝。
命令行安裝
Alibaba Cloud Linux 3
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關(guān)組件。
執(zhí)行以下命令來卸載舊版本的Docker和相關(guān)的軟件包,這個命令會幫您卸載掉所有列出的與Docker相關(guān)的程序。
說明如果系統(tǒng)提示說部分軟件包沒有安裝,說明您尚未安裝此軟件包。
sudo dnf -y remove \ docker-ce \ containerd.io \ docker-ce-rootless-extras \ docker-buildx-plugin \ docker-ce-cli \ docker-compose-plugin
Docker默認保存位置是
/var/lib/docker/
,卸載Docker時,鏡像、容器、存儲卷和網(wǎng)絡(luò)不會被自動刪除。如果您想要刪除這些數(shù)據(jù),需要手動刪除。刪除Docker相關(guān)源,請執(zhí)行以下命令。
sudo rm -f /etc/yum.repos.d/docker*.repo
更新您的包管理工具。
sudo dnf -y update
添加阿里云源到您的實例中,這個源包含Docker軟件包,方便您使用命令來安裝和更新Docker。
重要由于網(wǎng)絡(luò)原因,如果跳過此步可能會導(dǎo)致您安裝Docker失敗。
如果您的實例網(wǎng)絡(luò)可以訪問公網(wǎng)。
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果您的實例網(wǎng)絡(luò)無法訪問公網(wǎng),使用VPC網(wǎng)絡(luò)訪問地址。
sudo dnf config-manager --add-repo=http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
安裝Alibaba Cloud Linux3專用的dnf源兼容插件。
sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
安裝Docker社區(qū)版本,容器運行時containerd.io,以及Docker構(gòu)建和Compose插件。
說明使用Compose插件時,命令中間不用連字符,比如
docker compose version
。sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker并設(shè)置Docker守護進程在系統(tǒng)啟動時自動啟動,這樣可以確保每次系統(tǒng)啟動時,Docker服務(wù)也會自動啟動。
說明如果您的systemctl命令執(zhí)行異常,請參見在Linux實例中執(zhí)行systemctl命令報錯怎么辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯信息所示,表示Docker已安裝成功。
Alibaba Cloud Linux 2
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關(guān)組件。
執(zhí)行以下命令來卸載舊版本的Docker和相關(guān)的軟件包,這個命令會幫您卸載掉所有列出的與Docker相關(guān)的程序。
說明如果系統(tǒng)提示說部分軟件包沒有安裝,說明您尚未安裝此軟件包。
sudo yum -y remove \ docker-ce \ containerd.io \ docker-ce-rootless-extras \ docker-buildx-plugin \ docker-ce-cli \ docker-compose-plugin
Docker默認保存位置是
/var/lib/docker/
,卸載Docker時,鏡像、容器、存儲卷和網(wǎng)絡(luò)不會被自動刪除。如果您想要刪除這些數(shù)據(jù),需要手動刪除。刪除Docker相關(guān)源,請執(zhí)行以下命令。
sudo rm -f /etc/yum.repos.d/docker*.repo
更新您的包管理工具。
sudo yum -y update
添加阿里云源到您的實例中,這個源包含Docker軟件包,方便您使用命令來安裝和更新Docker。
重要由于網(wǎng)絡(luò)原因,如果跳過此步可能會導(dǎo)致您安裝Docker失敗。
如果您的實例網(wǎng)絡(luò)可以訪問公網(wǎng)。
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果您的實例網(wǎng)絡(luò)無法訪問公網(wǎng),使用VPC網(wǎng)絡(luò)訪問地址。
sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
安裝Alibaba Cloud Linux2專用的yum源兼容插件。
sudo yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
安裝Docker社區(qū)版本,容器運行時containerd.io,以及Docker構(gòu)建和Compose插件。
說明使用Compose插件時,命令中間不用連字符,比如
docker compose version
。sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker并設(shè)置Docker守護進程在系統(tǒng)啟動時自動啟動,這樣可以確保每次系統(tǒng)啟動時,Docker服務(wù)也會自動啟動。
說明如果您的systemctl命令執(zhí)行異常,請參見在Linux實例中執(zhí)行systemctl命令報錯怎么辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯信息所示,表示Docker已安裝成功。
CentOS 7.x
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關(guān)組件。
執(zhí)行以下命令來卸載舊版本的Docker和相關(guān)的軟件包,這個命令會幫您卸載掉所有列出的與Docker相關(guān)的程序。
說明如果系統(tǒng)提示說部分軟件包沒有安裝,說明您尚未安裝此軟件包。
sudo yum -y remove \ docker-ce \ containerd.io \ docker-ce-rootless-extras \ docker-buildx-plugin \ docker-ce-cli \ docker-compose-plugin
Docker默認保存位置是
/var/lib/docker/
,卸載Docker時,鏡像、容器、存儲卷和網(wǎng)絡(luò)不會被自動刪除。如果您想要刪除這些數(shù)據(jù),需要手動刪除。刪除Docker相關(guān)源,請執(zhí)行以下命令。
sudo rm -f /etc/yum.repos.d/docker*.repo
更新您的包管理工具。
sudo yum -y update
添加阿里云源到您的實例中,這個源包含Docker軟件包,方便您使用命令來安裝和更新Docker。
重要由于網(wǎng)絡(luò)原因,如果跳過此步可能會導(dǎo)致您安裝Docker失敗。
如果您的實例網(wǎng)絡(luò)可以訪問公網(wǎng)。
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果您的實例網(wǎng)絡(luò)無法訪問公網(wǎng),使用VPC網(wǎng)絡(luò)訪問地址。
sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
安裝Docker社區(qū)版本,容器運行時containerd.io,以及Docker構(gòu)建和Compose插件。
說明使用Compose插件時,命令中間不用連字符,比如
docker compose version
。sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker并設(shè)置Docker守護進程在系統(tǒng)啟動時自動啟動,這樣可以確保每次系統(tǒng)啟動時,Docker服務(wù)也會自動啟動。
說明如果您的systemctl命令執(zhí)行異常,請參見在Linux實例中執(zhí)行systemctl命令報錯怎么辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯信息所示,表示Docker已安裝成功。
CentOS 8.x
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關(guān)組件。
執(zhí)行以下命令來卸載舊版本的Docker和相關(guān)的軟件包,這個命令會幫您卸載掉所有列出的與Docker相關(guān)的程序。
說明如果系統(tǒng)提示說部分軟件包沒有安裝,說明您尚未安裝此軟件包。
sudo dnf -y remove \ docker-ce \ containerd.io \ docker-ce-rootless-extras \ docker-buildx-plugin \ docker-ce-cli \ docker-compose-plugin
Docker默認保存位置是
/var/lib/docker/
,卸載Docker時,鏡像、容器、存儲卷和網(wǎng)絡(luò)不會被自動刪除。如果您想要刪除這些數(shù)據(jù),需要手動刪除。刪除Docker相關(guān)源,請執(zhí)行以下命令。
sudo rm -f /etc/yum.repos.d/docker*.repo
更新您的包管理工具。
sudo dnf -y update
添加阿里云源到您的實例中,這個源包含Docker軟件包,方便您使用命令來安裝和更新Docker。
重要由于網(wǎng)絡(luò)原因,如果跳過此步可能會導(dǎo)致您安裝Docker失敗。
如果您的實例網(wǎng)絡(luò)可以訪問公網(wǎng)。
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果您的實例網(wǎng)絡(luò)無法訪問公網(wǎng),使用VPC網(wǎng)絡(luò)訪問地址。
sudo dnf config-manager --add-repo=http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
安裝Docker社區(qū)版本,容器運行時containerd.io,以及Docker構(gòu)建和Compose插件。
說明使用Compose插件時,命令中間不用連字符,比如
docker compose version
。sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker并設(shè)置Docker守護進程在系統(tǒng)啟動時自動啟動,這樣可以確保每次系統(tǒng)啟動時,Docker服務(wù)也會自動啟動。
說明如果您的systemctl命令執(zhí)行異常,請參見在Linux實例中執(zhí)行systemctl命令報錯怎么辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯信息所示,表示Docker已安裝成功。
Ubuntu
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關(guān)組件。
執(zhí)行以下命令來卸載舊版本的Docker和相關(guān)的軟件包,這個命令會幫您卸載掉所有列出的與Docker相關(guān)的程序。
說明如果系統(tǒng)提示說部分軟件包沒有安裝,說明您尚未安裝此軟件包。
for pkg in docker.io docker-buildx-plugin docker-ce-cli docker-ce-rootless-extras docker-compose-plugin docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove -y $pkg; done
Docker默認保存位置是
/var/lib/docker/
,卸載Docker時,鏡像、容器、存儲卷和網(wǎng)絡(luò)不會被自動刪除。如果您想要刪除這些數(shù)據(jù),需要手動刪除。刪除Docker相關(guān)源,請執(zhí)行以下命令。
sudo rm -f /etc/apt/sources.list.d/*docker*.list
更新您的包管理工具。
sudo apt-get update
添加阿里云源到您的實例中,這個源包含Docker軟件包,方便您使用命令來安裝和更新Docker。
重要由于網(wǎng)絡(luò)原因,如果跳過此步可能會導(dǎo)致您安裝Docker失敗。
如果您的實例網(wǎng)絡(luò)可以訪問公網(wǎng)。
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
如果您的實例網(wǎng)絡(luò)無法訪問公網(wǎng),使用VPC網(wǎng)絡(luò)訪問地址。
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
安裝Docker社區(qū)版本,容器運行時containerd.io,以及Docker構(gòu)建和Compose插件。
說明使用Compose插件時,命令中間不用連字符,比如
docker compose version
。sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker并設(shè)置Docker守護進程在系統(tǒng)啟動時自動啟動,這樣可以確保每次系統(tǒng)啟動時,Docker服務(wù)也會自動啟動。
說明如果您的systemctl命令執(zhí)行異常,請參見在Linux實例中執(zhí)行systemctl命令報錯怎么辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯信息所示,表示Docker已安裝成功。
Debian
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關(guān)組件。
執(zhí)行以下命令來卸載舊版本的Docker和相關(guān)的軟件包,這個命令會幫您卸載掉所有列出的與Docker相關(guān)的程序。
說明如果系統(tǒng)提示說部分軟件包沒有安裝,說明您尚未安裝此軟件包。
for pkg in docker.io docker-buildx-plugin docker-ce-cli docker-ce-rootless-extras docker-compose-plugin docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove -y $pkg; done
Docker默認保存位置是
/var/lib/docker/
,卸載Docker時,鏡像、容器、存儲卷和網(wǎng)絡(luò)不會被自動刪除。如果您想要刪除這些數(shù)據(jù),需要手動刪除。刪除Docker相關(guān)源,請執(zhí)行以下命令。
sudo rm -f /etc/apt/sources.list.d/*docker*.list
更新您的包管理工具。
sudo apt-get update
添加阿里云源到您的實例中,這個源包含Docker軟件包,方便您使用命令來安裝和更新Docker。
重要由于網(wǎng)絡(luò)原因,如果跳過此步可能會導(dǎo)致您安裝Docker失敗。
如果您的實例網(wǎng)絡(luò)可以訪問公網(wǎng)。
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable" sudo apt-get update
如果您的實例網(wǎng)絡(luò)無法訪問公網(wǎng),使用VPC網(wǎng)絡(luò)訪問地址。
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian $(lsb_release -cs) stable" sudo apt-get update
安裝Docker社區(qū)版本,容器運行時containerd.io,以及Docker構(gòu)建和Compose插件。
說明使用Compose插件時,命令中間不用連字符,比如
docker compose version
。sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker并設(shè)置Docker守護進程在系統(tǒng)啟動時自動啟動,這樣可以確保每次系統(tǒng)啟動時,Docker服務(wù)也會自動啟動。
說明如果您的systemctl命令執(zhí)行異常,請參見在Linux實例中執(zhí)行systemctl命令報錯怎么辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯信息所示,表示Docker已安裝成功。
Fedora
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關(guān)組件。
執(zhí)行以下命令來卸載舊版本的Docker和相關(guān)的軟件包,這個命令會幫您卸載掉所有列出的與Docker相關(guān)的程序。
說明如果系統(tǒng)提示說部分軟件包沒有安裝,說明您尚未安裝此軟件包。
sudo dnf -y remove \ docker-ce \ containerd.io \ docker-ce-rootless-extras \ docker-buildx-plugin \ docker-ce-cli \ docker-compose-plugin
Docker默認保存位置是
/var/lib/docker/
,卸載Docker時,鏡像、容器、存儲卷和網(wǎng)絡(luò)不會被自動刪除。如果您想要刪除這些數(shù)據(jù),需要手動刪除。刪除Docker相關(guān)源,請執(zhí)行以下命令。
sudo rm -f /etc/yum.repos.d/docker*.repo
更新您的包管理工具。
sudo dnf -y update
添加阿里云源到您的實例中,這個源包含Docker軟件包,方便您使用命令來安裝和更新Docker。
重要由于網(wǎng)絡(luò)原因,如果跳過此步可能會導(dǎo)致您安裝Docker失敗。
如果您的實例網(wǎng)絡(luò)可以訪問公網(wǎng)。
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/fedora/docker-ce.repo
如果您的實例網(wǎng)絡(luò)無法訪問公網(wǎng),使用VPC網(wǎng)絡(luò)訪問地址。
sudo dnf config-manager --add-repo=http://mirrors.cloud.aliyuncs.com/docker-ce/linux/fedora/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
安裝Docker社區(qū)版本,容器運行時containerd.io,以及Docker構(gòu)建和Compose插件。
說明使用Compose插件時,命令中間不用連字符,比如
docker compose version
。sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker并設(shè)置Docker守護進程在系統(tǒng)啟動時自動啟動,這樣可以確保每次系統(tǒng)啟動時,Docker服務(wù)也會自動啟動。
說明如果您的systemctl命令執(zhí)行異常,請參見在Linux實例中執(zhí)行systemctl命令報錯怎么辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯信息所示,表示Docker已安裝成功。
Red Hat
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關(guān)組件。
執(zhí)行以下命令來卸載舊版本的Docker和相關(guān)的軟件包,這個命令會幫您卸載掉所有列出的與Docker相關(guān)的程序。
說明如果系統(tǒng)提示說部分軟件包沒有安裝,說明您尚未安裝此軟件包。
sudo yum -y remove \ docker-ce \ containerd.io \ docker-ce-rootless-extras \ docker-buildx-plugin \ docker-ce-cli \ docker-compose-plugin
Docker默認保存位置是
/var/lib/docker/
,卸載Docker時,鏡像、容器、存儲卷和網(wǎng)絡(luò)不會被自動刪除。如果您想要刪除這些數(shù)據(jù),需要手動刪除。刪除Docker相關(guān)源,請執(zhí)行以下命令。
sudo rm -f /etc/yum.repos.d/docker*.repo
更新您的包管理工具。
sudo yum -y update
添加阿里云源到您的實例中,這個源包含Docker軟件包,方便您使用命令來安裝和更新Docker。
重要由于網(wǎng)絡(luò)原因,如果跳過此步可能會導(dǎo)致您安裝Docker失敗。
如果您的實例網(wǎng)絡(luò)可以訪問公網(wǎng)。
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/rhel/docker-ce.repo
如果您的實例網(wǎng)絡(luò)無法訪問公網(wǎng),使用VPC網(wǎng)絡(luò)訪問地址。
sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/rhel/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
安裝Docker社區(qū)版本,容器運行時containerd.io,以及Docker構(gòu)建和Compose插件。
說明使用Compose插件時,命令中間不用連字符,比如
docker compose version
。sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker并設(shè)置Docker守護進程在系統(tǒng)啟動時自動啟動,這樣可以確保每次系統(tǒng)啟動時,Docker服務(wù)也會自動啟動。
說明如果您的systemctl命令執(zhí)行異常,請參見在Linux實例中執(zhí)行systemctl命令報錯怎么辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯信息所示,表示Docker已安裝成功。
Anolis OS
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關(guān)組件。
執(zhí)行以下命令來卸載舊版本的Docker和相關(guān)的軟件包,這個命令會幫您卸載掉所有列出的與Docker相關(guān)的程序。
說明如果系統(tǒng)提示說部分軟件包沒有安裝,說明您尚未安裝此軟件包。
sudo yum -y remove \ docker-ce \ containerd.io \ docker-ce-rootless-extras \ docker-buildx-plugin \ docker-ce-cli \ docker-compose-plugin
Docker默認保存位置是
/var/lib/docker/
,卸載Docker時,鏡像、容器、存儲卷和網(wǎng)絡(luò)不會被自動刪除。如果您想要刪除這些數(shù)據(jù),需要手動刪除。刪除Docker相關(guān)源,請執(zhí)行以下命令。
sudo rm -f /etc/yum.repos.d/docker*.repo
更新您的包管理工具。
sudo yum -y update
添加阿里云源到您的實例中,這個源包含Docker軟件包,方便您使用命令來安裝和更新Docker。
重要由于網(wǎng)絡(luò)原因,如果跳過此步可能會導(dǎo)致您安裝Docker失敗。
如果您的實例網(wǎng)絡(luò)可以訪問公網(wǎng)。
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果您的實例網(wǎng)絡(luò)無法訪問公網(wǎng),使用VPC網(wǎng)絡(luò)訪問地址。
sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
安裝Docker社區(qū)版本,容器運行時containerd.io,以及Docker構(gòu)建和Compose插件。
說明使用Compose插件時,命令中間不用連字符,比如
docker compose version
。sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker并設(shè)置Docker守護進程在系統(tǒng)啟動時自動啟動,這樣可以確保每次系統(tǒng)啟動時,Docker服務(wù)也會自動啟動。
說明如果您的systemctl命令執(zhí)行異常,請參見在Linux實例中執(zhí)行systemctl命令報錯怎么辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯信息所示,表示Docker已安裝成功。
配置鏡像源
由于運營商網(wǎng)絡(luò)原因,您可能會遇到拉取Docker Hub鏡像變慢,甚至下載失敗的情況,建議參考以下方法解決。
阿里云容器鏡像服務(wù)ACR提供了官方的鏡像加速器,從而加速官方鏡像的下載。
登錄容器鏡像服務(wù)控制臺,在左側(cè)導(dǎo)航欄選擇 ,在鏡像加速器頁面獲取加速器地址。
重要由于運營商網(wǎng)絡(luò)等不穩(wěn)定因素可能導(dǎo)致鏡像加速器無法成功拉取到指定版本的容器鏡像。詳情請見Docker Hub拉取失敗解決方案。
創(chuàng)建并編輯
/etc/docker/daemon.json
文件(如果文件不存在,則創(chuàng)建):{ "registry-mirrors": ["<鏡像加速器地址>"] }
重啟Docker使配置生效。
重要重啟Docker會使您的Docker服務(wù)短暫不可用,請謹慎操作。
sudo systemctl restart docker
如果您已經(jīng)有了自定義的鏡像加速器地址,并且希望使用它來加速Docker鏡像的下載,您可以按照以下步驟進行設(shè)置。
您需要編輯Docker的配置文件
/etc/docker/daemon.json
,如果該文件不存在,您需要創(chuàng)建它。{ "registry-mirrors": ["<您的自定義加速器地址>"] }
完成編輯后,保存文件并退出。然后,為了使新的配置生效,您需要重啟Docker服務(wù)。這可以通過執(zhí)行以下命令來完成。
重要重啟Docker會使您的Docker服務(wù)短暫不可用,請謹慎操作。
sudo systemctl restart docker
如果您的實例無法連接公網(wǎng)或需要托管鏡像,您可以使用阿里云容器鏡像服務(wù)ACR進行鏡像全生命周期管理,每個鏡像倉庫都提供了公網(wǎng)、VPC網(wǎng)絡(luò)下對應(yīng)的網(wǎng)絡(luò)地址,詳情請參見什么是容器鏡像服務(wù)ACR。
創(chuàng)建簡單Web程序鏡像
接下來,我將為您演示使用Nginx鏡像作為基礎(chǔ)鏡像,創(chuàng)建簡單Web程序鏡像。
前期準備
您的實例可以連接公網(wǎng),使用docker pull
命令獲取Nginx最新版鏡像。
sudo docker pull nginx:latest
創(chuàng)建鏡像
您需要創(chuàng)建一個名為
Dockerfile
的文件。Dockerfile
是一個特殊的文本文件,它用來定義如何構(gòu)建一個 Docker 鏡像。這個文件會告訴Docker需要使用哪個基礎(chǔ)鏡像,以及在這個基礎(chǔ)鏡像上需要安裝哪些軟件和進行哪些配置。sudo touch Dockerfile
編輯創(chuàng)建的
Dockerfile
并添加內(nèi)容。FROM nginx:latest RUN echo 'Hello World!' > /usr/share/nginx/html/index.html
使用
Dockerfile
構(gòu)建您的鏡像。sudo docker build . -t hello-world:latest
為您的新鏡像創(chuàng)建容器,并且命名容器名稱為
hello-world
。sudo docker run -d -p 80:80 --name hello-world hello-world:latest
驗證您的鏡像,執(zhí)行命令
curl http://localhost
,輸出hello world!
。
使用Docker Compose
Docker Compose是Docker官方提供的用于定義和運行多個Docker容器的開源容器編排工具,可以使用YAML文件來配置應(yīng)用程序需要的所有服務(wù),然后使用docker compose
運行命令解析YAML文件配置,創(chuàng)建并啟動配置文件中的所有Docker服務(wù),具有運維成本低、部署效率高等優(yōu)勢。
關(guān)于Docker Compose的更多信息,請參見Docker Compose官網(wǎng)。
安裝Docker Compose
如果您參考的本文安裝Docker,那么Compose插件將默認安裝到您的實例中。您可以通過如下命令查看。
sudo docker compose version
預(yù)期輸出(vN.N.N代表Compose的版本):Docker Compose version vN.N.N
。
如果您的Compose插件未成功安裝或您需要使用Compose獨立版(docker-compose
)可參考下面內(nèi)容。
使用Compose獨立版時,命令中間要用連字符,比如
docker-compose up
。使用Compose插件時,命令中間不用連字符,比如
docker compose up
。
Compose插件
安裝Compose插件。
說明如果安裝命令遇到問題,您可能需要將源添加到您的實例,請參考本文命令行安裝的第2步,將阿里云源添加到您的實例。
對于Alibaba Cloud Linux 3、CentOS 8.x、Fedora。
sudo dnf -y install docker-compose-plugin
對于Ubuntu、Debian。
sudo apt-get -y install docker-compose-plugin
對于Alibaba Cloud Linux 2、CentOS 7.x、Red Hat、Anolis OS。
sudo yum -y install docker-compose-plugin
使用查看Compose版本命令,驗證Compose是否安裝成功。
sudo docker compose version
預(yù)期輸出(vN.N.N代表Compose的版本):
Docker Compose version vN.N.N
。
Compose獨立版
下載并安裝Compose獨立版。
說明在嘗試訪問GitHub時,您可能會遇到由于網(wǎng)絡(luò)問題導(dǎo)致的訪問超時或連接失敗等異常情況。為了解決這些問題,請嘗試多次重新連接。
curl -SL https://github.com/docker/compose/releases/download/v2.30.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
將可執(zhí)行權(quán)限賦予安裝目標路徑中的獨立二進制文件。
sudo chmod +x /usr/local/bin/docker-compose
執(zhí)行查看版本命令,測試是否安裝成功。
說明如果在安裝Compose之后執(zhí)行
docker-compose
命令遇到問題,可能是您的系統(tǒng)環(huán)境變量中沒有包含Compose的安裝路徑。您可以通過創(chuàng)建一個符號鏈接到/usr/bin
目錄或者您的環(huán)境變量中包含的其他目錄來解決這個問題。sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo docker-compose version
使用Docker Compose部署應(yīng)用
下文以部署WordPress為例,介紹如何使用docker-compose部署應(yīng)用。
運行以下命令,以創(chuàng)建并編輯
docker-compose.yaml
文件:sudo vim docker-compose.yaml
按下
i
鍵,進入編輯模式,添加以下內(nèi)容以定義WordPress和MySQL服務(wù)。version: '3.1' services: wordpress: image: wordpress restart: always ports: - "80:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: 123456 WORDPRESS_DB_NAME: wordpress volumes: - wordpress:/var/www/html db: image: mysql:5.7 restart: always ports: - "3306:3306" environment: MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: 123456 MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: - db:/var/lib/mysql volumes: wordpress: db:
編輯完成后,按下
Esc
鍵,退出編輯模式,然后輸入:wq
保存并退出。運行以下命令,啟動服務(wù)。
sudo env "PATH=$PATH" docker compose up -d
在瀏覽器中輸入
http://云服務(wù)器ECS實例的公網(wǎng)IP
,即可進入WordPress配置頁面,您可以根據(jù)界面提示配置相關(guān)參數(shù)后,訪問WordPress。說明需要在安全組放行
80
端口,詳細信息,請參見添加安全組規(guī)則。
常見問題
Linux ECS實例中執(zhí)行dnf config-manager命令報錯
問題現(xiàn)象:在Linux系統(tǒng)實例中執(zhí)行dnf config-manager命令出現(xiàn)如下報錯:
/usr/lib/python3/dist-packages/dnf/const.py:22: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives.
可能原因:dnf版本太舊導(dǎo)致安裝失敗。
解決方案:您可以嘗試使用sudo dnf update dnf來更新dnf軟件包到最新狀態(tài),然后再嘗試安裝docker。
Linux ECS實例中執(zhí)行dnf install docker-ce命令報錯
問題現(xiàn)象一:在Linux系統(tǒng)實例中執(zhí)行dnf -y install docker-ce
命令出現(xiàn)如下報錯:
(8-9/12): docker-ce-24.0.7-1.el8.x86_64.rpm 38% [================- ] 8.2 MB/s | 38 MB 00:07 ETA
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: Error downloading packages:
containerd.io-1.6.26-3.1.el8.x86_64: Cannot download, all mirrors were already tried without success.
可能原因:軟件包緩存太舊導(dǎo)致安裝失敗。
解決方案:您可以嘗試使用sudo dnf clean packages
清理軟件包緩存之后,再嘗試安裝docker
。
問題現(xiàn)象二:在Linux系統(tǒng)實例中執(zhí)行dnf -y install docker-ce
命令出現(xiàn)如下報錯:
CentOS- Base 0.0 B/s | 0 B 00:30
Errors during downloading metadata for repository 'base':
- Curl error (6): Couldn't resolve host name for http://mirror.centos.org/os/BaseOS/x86_64/os/repodata/repomd.xml [Could not resolve host: mirror.aliyuncs.com]
- Curl error (28): Timeout was reached for http://mirror.centos.org/os/BaseOS/x86_64/os/repodata/repomd.xml [Connection timed out after 30000 milliseconds]
- Curl error (6): Couldn't resolve host name for http://mirror.centos.org/os/BaseOS/x86_64/os/repodata/repomd.xml [Could not resolve host: mirror.cloud.aliyuncs.com]
Error: Failed to download metadata for repo 'base': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
可能原因:使用了已下線的CentOS 8
軟件源。
解決方案:可參考如下步驟,使用阿里提供的可用源替換已下線的CentOS 8
軟件源。
# 備份過期軟件源。
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下載阿里提供的CentOS-Base.repo 到 /etc/yum.repos.d/。
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.aliyuncs.com/repo/Centos-vault-8.5.2111.repo
# 將阿里源中的軟件源地址替換為ECS可訪問的源地址。
sudo sed -i 's/mirrors.cloud.aliyuncs.com/url_tmp/g' /etc/yum.repos.d/CentOS-Base.repo && sudo sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/CentOS-Base.repo && sudo sed -i 's/url_tmp/mirrors.aliyun.com/g' /etc/yum.repos.d/CentOS-Base.repo
# 清理舊緩存并生成緩存。
sudo yum clean all && sudo yum makecache
執(zhí)行完上述步驟后再嘗試安裝docker
即可。
如果您不想使用阿里提供的可用源,您可以自行注釋掉原有/etc/yum.repos.d/CentOS-Base.repo
中不可用的軟件源地址,然后再嘗試安裝Docker
。
相關(guān)文檔
Docker的更多使用方法,請參見Docker官方文檔。
阿里云推出了制品中心,為開發(fā)者免費提供了來源于阿里云官方、龍蜥社區(qū)的安全可信容器基礎(chǔ)鏡像。
您可以使用企業(yè)P2P加速功能提升鏡像拉取速度。具體操作,請參見在其他容器環(huán)境中使用P2P加速。
您可以在Docker中配置CLI來管理您的阿里云資源。具體操作,請參見在Docker容器中運行阿里云CLI。
如果您需要在輕量應(yīng)用服務(wù)器上部署Docker,可參考基于輕量應(yīng)用服務(wù)器上部署并使用Docker。