全部產品
Search
文件中心

Elastic Compute Service:安裝Docker

更新時間:Dec 25, 2024

Docker是一個開放平台,用於開發、發布和運行應用程式。如果您需要在執行個體上安裝和使用Docker,可以參考本文,文中將介紹如何在執行個體上部署Docker以及一些基本的操作方法。

安裝Docker

Alibaba Cloud Linux 3

在安裝最新版本的Docker之前,您可以使用docker -v命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。

卸載舊版本的Docker

  1. 執行以下命令來卸載舊版本的Docker和相關的軟體包,這個命令會幫您卸載掉所有列出的與Docker相關的程式。

    說明

    如果系統提示說部分軟體包沒有安裝,說明您尚未安裝此軟體包。

    sudo dnf -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Docker預設儲存位置是/var/lib/docker/,卸載Docker時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

  3. 刪除Docker相關源,請執行以下命令。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. 更新您的包管理工具。

    sudo dnf -y update
  2. 添加阿里雲源到您的執行個體中,這個源包含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
  3. 安裝Alibaba Cloud Linux3專用的dnf源相容外掛程式。

    sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
  4. 安裝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
  5. 啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。

    說明

    如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?

    sudo systemctl start docker
    sudo systemctl enable docker
  6. 通過查看Docker版本命令,驗證Docker是否安裝成功。

    sudo docker -v

    如下圖回顯資訊所示,表示Docker已安裝成功。image

Alibaba Cloud Linux 2

在安裝最新版本的Docker之前,您可以使用docker -v命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。

卸載舊版本的Docker

  1. 執行以下命令來卸載舊版本的Docker和相關的軟體包,這個命令會幫您卸載掉所有列出的與Docker相關的程式。

    說明

    如果系統提示說部分軟體包沒有安裝,說明您尚未安裝此軟體包。

    sudo yum -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Docker預設儲存位置是/var/lib/docker/,卸載Docker時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

  3. 刪除Docker相關源,請執行以下命令。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. 更新您的包管理工具。

    sudo yum -y update
  2. 添加阿里雲源到您的執行個體中,這個源包含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
  3. 安裝Alibaba Cloud Linux2專用的yum源相容外掛程式。

    sudo yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
  4. 安裝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
  5. 啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。

    說明

    如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?

    sudo systemctl start docker
    sudo systemctl enable docker
  6. 通過查看Docker版本命令,驗證Docker是否安裝成功。

    sudo docker -v

    如下圖回顯資訊所示,表示Docker已安裝成功。image

CentOS 7.x

在安裝最新版本的Docker之前,您可以使用docker -v命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。

卸載舊版本的Docker

  1. 執行以下命令來卸載舊版本的Docker和相關的軟體包,這個命令會幫您卸載掉所有列出的與Docker相關的程式。

    說明

    如果系統提示說部分軟體包沒有安裝,說明您尚未安裝此軟體包。

    sudo yum -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Docker預設儲存位置是/var/lib/docker/,卸載Docker時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

  3. 刪除Docker相關源,請執行以下命令。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. 更新您的包管理工具。

    sudo yum -y update
  2. 添加阿里雲源到您的執行個體中,這個源包含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
  3. 安裝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
  4. 啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。

    說明

    如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. 通過查看Docker版本命令,驗證Docker是否安裝成功。

    sudo docker -v

    如下圖回顯資訊所示,表示Docker已安裝成功。image

CentOS 8.x

在安裝最新版本的Docker之前,您可以使用docker -v命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。

卸載舊版本的Docker

  1. 執行以下命令來卸載舊版本的Docker和相關的軟體包,這個命令會幫您卸載掉所有列出的與Docker相關的程式。

    說明

    如果系統提示說部分軟體包沒有安裝,說明您尚未安裝此軟體包。

    sudo dnf -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Docker預設儲存位置是/var/lib/docker/,卸載Docker時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

  3. 刪除Docker相關源,請執行以下命令。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. 更新您的包管理工具。

    sudo dnf -y update
  2. 添加阿里雲源到您的執行個體中,這個源包含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
  3. 安裝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
  4. 啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。

    說明

    如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. 通過查看Docker版本命令,驗證Docker是否安裝成功。

    sudo docker -v

    如下圖回顯資訊所示,表示Docker已安裝成功。image

Ubuntu

在安裝最新版本的Docker之前,您可以使用docker -v命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。

卸載舊版本的Docker

  1. 執行以下命令來卸載舊版本的Docker和相關的軟體包,這個命令會幫您卸載掉所有列出的與Docker相關的程式。

    說明

    如果系統提示說部分軟體包沒有安裝,說明您尚未安裝此軟體包。

    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
  2. Docker預設儲存位置是/var/lib/docker/,卸載Docker時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

  3. 刪除Docker相關源,請執行以下命令。

    sudo rm -f /etc/apt/sources.list.d/*docker*.list
  1. 更新您的包管理工具。

    sudo apt-get update
  2. 添加阿里雲源到您的執行個體中,這個源包含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"
  3. 安裝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
  4. 啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。

    說明

    如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. 通過查看Docker版本命令,驗證Docker是否安裝成功。

    sudo docker -v

    如下圖回顯資訊所示,表示Docker已安裝成功。image

Debian

在安裝最新版本的Docker之前,您可以使用docker -v命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。

卸載舊版本的Docker

  1. 執行以下命令來卸載舊版本的Docker和相關的軟體包,這個命令會幫您卸載掉所有列出的與Docker相關的程式。

    說明

    如果系統提示說部分軟體包沒有安裝,說明您尚未安裝此軟體包。

    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
  2. Docker預設儲存位置是/var/lib/docker/,卸載Docker時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

  3. 刪除Docker相關源,請執行以下命令。

    sudo rm -f /etc/apt/sources.list.d/*docker*.list
  1. 更新您的包管理工具。

    sudo apt-get update
  2. 添加阿里雲源到您的執行個體中,這個源包含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
  3. 安裝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
  4. 啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。

    說明

    如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. 通過查看Docker版本命令,驗證Docker是否安裝成功。

    sudo docker -v

    如下圖回顯資訊所示,表示Docker已安裝成功。image

Fedora

在安裝最新版本的Docker之前,您可以使用docker -v命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。

卸載舊版本的Docker

  1. 執行以下命令來卸載舊版本的Docker和相關的軟體包,這個命令會幫您卸載掉所有列出的與Docker相關的程式。

    說明

    如果系統提示說部分軟體包沒有安裝,說明您尚未安裝此軟體包。

    sudo dnf -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Docker預設儲存位置是/var/lib/docker/,卸載Docker時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

  3. 刪除Docker相關源,請執行以下命令。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. 更新您的包管理工具。

    sudo dnf -y update
  2. 添加阿里雲源到您的執行個體中,這個源包含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
  3. 安裝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
  4. 啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。

    說明

    如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. 通過查看Docker版本命令,驗證Docker是否安裝成功。

    sudo docker -v

    如下圖回顯資訊所示,表示Docker已安裝成功。image

Red Hat

在安裝最新版本的Docker之前,您可以使用docker -v命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。

卸載舊版本的Docker

  1. 執行以下命令來卸載舊版本的Docker和相關的軟體包,這個命令會幫您卸載掉所有列出的與Docker相關的程式。

    說明

    如果系統提示說部分軟體包沒有安裝,說明您尚未安裝此軟體包。

    sudo yum -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Docker預設儲存位置是/var/lib/docker/,卸載Docker時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

  3. 刪除Docker相關源,請執行以下命令。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. 更新您的包管理工具。

    sudo yum -y update
  2. 添加阿里雲源到您的執行個體中,這個源包含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
  3. 安裝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
  4. 啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。

    說明

    如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. 通過查看Docker版本命令,驗證Docker是否安裝成功。

    sudo docker -v

    如下圖回顯資訊所示,表示Docker已安裝成功。image

Anolis OS

在安裝最新版本的Docker之前,您可以使用docker -v命令來檢查當前的Docker版本。如果提示沒有此命令,說明您還未安裝Docker,若已安裝舊版本的Docker,則需先卸載及其相關組件。

卸載舊版本的Docker

  1. 執行以下命令來卸載舊版本的Docker和相關的軟體包,這個命令會幫您卸載掉所有列出的與Docker相關的程式。

    說明

    如果系統提示說部分軟體包沒有安裝,說明您尚未安裝此軟體包。

    sudo yum -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Docker預設儲存位置是/var/lib/docker/,卸載Docker時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

  3. 刪除Docker相關源,請執行以下命令。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. 更新您的包管理工具。

    sudo yum -y update
  2. 添加阿里雲源到您的執行個體中,這個源包含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
  3. 安裝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
  4. 啟動Docker並設定Docker守護進程在系統啟動時自動啟動,這樣可以確保每次系統啟動時,Docker服務也會自動啟動。

    說明

    如果您的systemctl命令執行異常,請參見在Linux執行個體中執行systemctl命令報錯怎麼辦?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. 通過查看Docker版本命令,驗證Docker是否安裝成功。

    sudo docker -v

    如下圖回顯資訊所示,表示Docker已安裝成功。image

建立簡單Web程式鏡像

接下來,我將為您示範使用Nginx鏡像作為基礎鏡像,建立簡單Web程式鏡像。

前期準備

您的執行個體可以串連公網,使用docker pull命令擷取Nginx最新版鏡像。

sudo docker pull nginx:latest

建立鏡像

  1. 您需要建立一個名為Dockerfile的檔案。Dockerfile是一個特殊的文字檔,它用來定義如何構建一個 Docker 鏡像。這個檔案會告訴Docker需要使用哪個基礎鏡像,以及在這個基礎鏡像上需要安裝哪些軟體和進行哪些配置。

    sudo touch Dockerfile
  2. 編輯建立的Dockerfile並新增內容。

    FROM nginx:latest
    RUN echo 'Hello World!' > /usr/share/nginx/html/index.html
  3. 使用Dockerfile構建您的鏡像。

    sudo docker build . -t hello-world:latest
  4. 為您的新鏡像建立容器,並且命名容器名稱為hello-world

    sudo docker run -d -p 80:80 --name hello-world hello-world:latest
  5. 驗證您的鏡像,執行命令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外掛程式

  1. 安裝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
  2. 使用查看Compose版本命令,驗證Compose是否安裝成功。

    sudo docker compose version

    預期輸出(vN.N.N代表Compose的版本):Docker Compose version vN.N.N

Compose獨立版

  1. 下載並安裝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
  2. 將可執行許可權賦予安裝目標路徑中的獨立二進位檔案。

    sudo chmod +x /usr/local/bin/docker-compose
  3. 執行查看版本命令,測試是否安裝成功。

    說明

    如果在安裝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部署應用。

  1. 運行以下命令,以建立並編輯docker-compose.yaml檔案:

    sudo vim docker-compose.yaml
  2. 按下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:
  3. 編輯完成後,按下Esc鍵,退出編輯模式,然後輸入:wq儲存並退出。

  4. 運行以下命令,啟動服務。

    sudo env "PATH=$PATH" docker compose up -d
  5. 在瀏覽器中輸入http://Elastic Compute Service執行個體的公網IP,即可進入WordPress配置頁面,您可以根據介面提示配置相關參數後,訪問WordPress。

    說明

    需要在安全性群組允許存取80連接埠,詳細資料,請參見添加安全性群組規則

常見問題

Linux ECS執行個體中執行dnf config-manager命令報錯

  • 問題現象:在Linux系統執行個體中執行dnf config-manager命令出現如下報錯:

    /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版本太舊導致安裝失敗。

  • 解決方案:您可以嘗試使用sudo dnf update dnf來更新dnf軟體包到最新狀態,然後再嘗試安裝docker。

Linux ECS執行個體中執行dnf install docker-ce命令報錯

問題現象一:在Linux系統執行個體中執行dnf -y install docker-ce命令出現如下報錯:

(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.

可能原因:軟體包緩衝太舊導致安裝失敗。

解決方案:您可以嘗試使用sudo dnf clean packages清理軟體包緩衝之後,再嘗試安裝docker

問題現象二:在Linux系統執行個體中執行dnf -y install docker-ce命令出現如下報錯:

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

執行完上述步驟後再嘗試安裝docker即可。

說明

如果您不想使用阿里提供的可用源,您可以自行注釋掉原有/etc/yum.repos.d/CentOS-Base.repo中停用軟體源地址,然後再嘗試安裝Docker

相關文檔