Docker是一個開放平台,用於開發、發布和運行應用程式。如果您需要在執行個體上安裝和使用Docker,可以參考本文,文中將介紹如何在執行個體上部署Docker以及一些基本的操作方法。
安裝Docker
Alibaba Cloud Linux 3
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。
更新您的包管理工具。
sudo dnf -y update
添加阿里雲源到您的執行個體中,這個源包含Docker軟體包,方便您使用命令來安裝和更新Docker。
重要由於網路原因,如果跳過此步可能會導致您安裝Docker失敗。
如果您的執行個體網路可以訪問公網。
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果您的執行個體網路無法訪問公網,使用VPC網路訪問地址。
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社區版本,容器運行時containerd.io,以及Docker構建和Compose外掛程式。
說明使用Compose外掛程式時,命令中間不用連字號,比如
docker compose version
。sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。
說明如果您的systemctl命令執行異常,請參見在Linux執行個體中執行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,則需先卸載及其相關組件。
更新您的包管理工具。
sudo yum -y update
添加阿里雲源到您的執行個體中,這個源包含Docker軟體包,方便您使用命令來安裝和更新Docker。
重要由於網路原因,如果跳過此步可能會導致您安裝Docker失敗。
如果您的執行個體網路可以訪問公網。
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果您的執行個體網路無法訪問公網,使用VPC網路訪問地址。
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社區版本,容器運行時containerd.io,以及Docker構建和Compose外掛程式。
說明使用Compose外掛程式時,命令中間不用連字號,比如
docker compose version
。sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。
說明如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯資訊所示,表示Docker已安裝成功。
CentOS 7.x
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。
更新您的包管理工具。
sudo yum -y update
添加阿里雲源到您的執行個體中,這個源包含Docker軟體包,方便您使用命令來安裝和更新Docker。
重要由於網路原因,如果跳過此步可能會導致您安裝Docker失敗。
如果您的執行個體網路可以訪問公網。
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果您的執行個體網路無法訪問公網,使用VPC網路訪問地址。
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社區版本,容器運行時containerd.io,以及Docker構建和Compose外掛程式。
說明使用Compose外掛程式時,命令中間不用連字號,比如
docker compose version
。sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。
說明如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯資訊所示,表示Docker已安裝成功。
CentOS 8.x
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。
更新您的包管理工具。
sudo dnf -y update
添加阿里雲源到您的執行個體中,這個源包含Docker軟體包,方便您使用命令來安裝和更新Docker。
重要由於網路原因,如果跳過此步可能會導致您安裝Docker失敗。
如果您的執行個體網路可以訪問公網。
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果您的執行個體網路無法訪問公網,使用VPC網路訪問地址。
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社區版本,容器運行時containerd.io,以及Docker構建和Compose外掛程式。
說明使用Compose外掛程式時,命令中間不用連字號,比如
docker compose version
。sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。
說明如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯資訊所示,表示Docker已安裝成功。
Ubuntu
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。
更新您的包管理工具。
sudo apt-get update
添加阿里雲源到您的執行個體中,這個源包含Docker軟體包,方便您使用命令來安裝和更新Docker。
重要由於網路原因,如果跳過此步可能會導致您安裝Docker失敗。
如果您的執行個體網路可以訪問公網。
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"
如果您的執行個體網路無法訪問公網,使用VPC網路訪問地址。
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社區版本,容器運行時containerd.io,以及Docker構建和Compose外掛程式。
說明使用Compose外掛程式時,命令中間不用連字號,比如
docker compose version
。sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。
說明如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯資訊所示,表示Docker已安裝成功。
Debian
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。
更新您的包管理工具。
sudo apt-get update
添加阿里雲源到您的執行個體中,這個源包含Docker軟體包,方便您使用命令來安裝和更新Docker。
重要由於網路原因,如果跳過此步可能會導致您安裝Docker失敗。
如果您的執行個體網路可以訪問公網。
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
如果您的執行個體網路無法訪問公網,使用VPC網路訪問地址。
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社區版本,容器運行時containerd.io,以及Docker構建和Compose外掛程式。
說明使用Compose外掛程式時,命令中間不用連字號,比如
docker compose version
。sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。
說明如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯資訊所示,表示Docker已安裝成功。
Fedora
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。
更新您的包管理工具。
sudo dnf -y update
添加阿里雲源到您的執行個體中,這個源包含Docker軟體包,方便您使用命令來安裝和更新Docker。
重要由於網路原因,如果跳過此步可能會導致您安裝Docker失敗。
如果您的執行個體網路可以訪問公網。
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/fedora/docker-ce.repo
如果您的執行個體網路無法訪問公網,使用VPC網路訪問地址。
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社區版本,容器運行時containerd.io,以及Docker構建和Compose外掛程式。
說明使用Compose外掛程式時,命令中間不用連字號,比如
docker compose version
。sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。
說明如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯資訊所示,表示Docker已安裝成功。
Red Hat
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。
更新您的包管理工具。
sudo yum -y update
添加阿里雲源到您的執行個體中,這個源包含Docker軟體包,方便您使用命令來安裝和更新Docker。
重要由於網路原因,如果跳過此步可能會導致您安裝Docker失敗。
如果您的執行個體網路可以訪問公網。
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/rhel/docker-ce.repo
如果您的執行個體網路無法訪問公網,使用VPC網路訪問地址。
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社區版本,容器運行時containerd.io,以及Docker構建和Compose外掛程式。
說明使用Compose外掛程式時,命令中間不用連字號,比如
docker compose version
。sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。
說明如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯資訊所示,表示Docker已安裝成功。
Anolis OS
在安裝最新版本的Docker之前,您可以使用docker -v
命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。
更新您的包管理工具。
sudo yum -y update
添加阿里雲源到您的執行個體中,這個源包含Docker軟體包,方便您使用命令來安裝和更新Docker。
重要由於網路原因,如果跳過此步可能會導致您安裝Docker失敗。
如果您的執行個體網路可以訪問公網。
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果您的執行個體網路無法訪問公網,使用VPC網路訪問地址。
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社區版本,容器運行時containerd.io,以及Docker構建和Compose外掛程式。
說明使用Compose外掛程式時,命令中間不用連字號,比如
docker compose version
。sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。
說明如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?
sudo systemctl start docker sudo systemctl enable docker
通過查看Docker版本命令,驗證Docker是否安裝成功。
sudo docker -v
如下圖回顯資訊所示,表示Docker已安裝成功。
建立簡單Web程式鏡像
接下來,我將為您示範使用Nginx鏡像作為基礎鏡像,建立簡單Web程式鏡像。
前期準備
您的執行個體可以串連公網,使用docker pull
命令擷取Nginx最新版鏡像。
sudo docker pull nginx:latest
建立鏡像
您需要建立一個名為
Dockerfile
的檔案。Dockerfile
是一個特殊的文字檔,它用來定義如何構建一個 Docker 鏡像。這個檔案會告訴Docker需要使用哪個基礎鏡像,以及在這個基礎鏡像上需要安裝哪些軟體和進行哪些配置。sudo touch Dockerfile
編輯建立的
Dockerfile
並新增內容。FROM nginx:latest RUN echo 'Hello World!' > /usr/share/nginx/html/index.html
使用
Dockerfile
構建您的鏡像。sudo docker build . -t hello-world:latest
為您的新鏡像建立容器,並且命名容器名稱為
hello-world
。sudo docker run -d -p 80:80 --name hello-world hello-world:latest
驗證您的鏡像,執行命令
curl http://localhost
,輸出hello world!
。
使用Docker Compose
Docker Compose是Docker官方提供的用於定義和運行多個Docker容器的開源容器編排工具,可以使用YAML檔案來配置應用程式需要的所有服務,然後使用docker compose
運行命令解析YAML檔案配置,建立並啟動設定檔中的所有Docker服務,具有營運成本低、部署效率高等優勢。
關於Docker Compose的更多資訊,請參見Docker Compose官網。
安裝Docker Compose
如果您參考的本文安裝Docker,那麼Compose外掛程式將預設安裝到您的執行個體中。您可以通過如下命令查看。
sudo docker compose version
預期輸出(vN.N.N代表Compose的版本):Docker Compose version vN.N.N
。
如果您的Compose外掛程式未成功安裝或您需要使用Compose獨立版(docker-compose
)可參考下面內容。
使用Compose獨立版時,命令中間要用連字號,比如
docker-compose up
。使用Compose外掛程式時,命令中間不用連字號,比如
docker compose up
。
Compose外掛程式
安裝Compose外掛程式。
對於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
預期輸出(vN.N.N代表Compose的版本):
Docker Compose version vN.N.N
。
Compose獨立版
下載並安裝Compose獨立版。
說明在嘗試訪問GitHub時,您可能會遇到由於網路問題導致的訪問逾時或串連失敗等異常情況。為瞭解決這些問題,請嘗試多次重新串連。
curl -SL https://github.com/docker/compose/releases/download/v2.30.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
將可執行許可權賦予安裝目標路徑中的獨立二進位檔案。
sudo chmod +x /usr/local/bin/docker-compose
執行查看版本命令,測試是否安裝成功。
說明如果在安裝Compose之後執行
docker-compose
命令遇到問題,可能是您的系統內容變數中沒有包含Compose的安裝路徑。您可以通過建立一個符號連結到/usr/bin
目錄或者您的環境變數中包含的其他目錄來解決這個問題。sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo docker-compose version
使用Docker Compose部署應用
下文以部署WordPress為例,介紹如何使用docker-compose部署應用。
運行以下命令,以建立並編輯
docker-compose.yaml
檔案:sudo vim docker-compose.yaml
按下
i
鍵,進入編輯模式,添加以下內容以定義WordPress和MySQL服務。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
儲存並退出。運行以下命令,啟動服務。
sudo env "PATH=$PATH" docker compose up -d
在瀏覽器中輸入
http://Elastic Compute Service執行個體的公網IP
,即可進入WordPress配置頁面,您可以根據介面提示配置相關參數後,訪問WordPress。說明需要在安全性群組允許存取
80
連接埠,詳細資料,請參見添加安全性群組規則。
常見問題
Linux ECS執行個體中執行dnf config-manager命令報錯
Linux ECS執行個體中執行dnf install docker-ce命令報錯
相關文檔
Docker的更多使用方法,請參見Docker官方文檔。
阿里雲推出了製品中心,為開發人員免費提供了來源於阿里雲官方、龍蜥社區的安全可信容器基礎鏡像。
您可以使用企業P2P加速功能提升鏡像拉取速度。具體操作,請參見在其他容器環境中使用P2P加速。
您可以在Docker中配置CLI來管理您的阿里雲資源。具體操作,請參見在Docker容器中運行阿里雲CLI。