全部產品
Search
文件中心

Simple Application Server:手動部署Docker

更新時間:May 15, 2025

Docker是一個開源的應用程式容器引擎,提供了容器的自動化打包、分發和啟動並執行工具和服務,具有隔離性好、可移植性強、易於管理等優勢。本文主要介紹如何在LinuxSimple Application Server中安裝和使用Docker與Docker Compose。

說明

準備工作

  • 已建立LinuxSimple Application Server,並滿足以下配置。具體操作,請參見建立Simple Application Server

  • LinuxSimple Application Server入方向允許存取80和22連接埠。具體操作,請參見防火牆設定

部署Docker

  1. 遠端連線Simple Application Server。具體操作,請參見遠端連線Linux伺服器

  2. 根據伺服器的作業系統,選擇對應的操作,部署Docker。

    Alibaba Cloud Linux 3

    在安裝最新版本的Docker之前,請確保先卸載當前安裝的Docker及其相關組件,避免潛在的安裝衝突和相容性問題。

    卸載舊版本的Docker

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

      說明

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

      #刪除Docker相關源
      sudo rm -f /etc/yum.repos.d/docker*.repo
      #卸載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時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

    1. 執行以下命令安裝Docker社區版本。

      說明

      如果您使用的是非阿里雲伺服器,請將http://mirrors.cloud.aliyuncs.com替換為https://mirrors.aliyun.com

      #添加Docker軟體包源
      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 Linux3專用的dnf源相容外掛程式
      sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
      #安裝Docker社區版本,容器運行時containerd.io,以及Docker構建和Compose外掛程式
      sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      #啟動Docker
      sudo systemctl start docker
      #設定Docker守護進程在系統啟動時自動啟動
      sudo systemctl enable docker
    2. 通過查看Docker版本命令,驗證Docker是否安裝成功。

      sudo docker -v

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

    Alibaba Cloud Linux 2

    在安裝最新版本的Docker之前,請確保先卸載當前安裝的Docker及其相關組件,避免潛在的安裝衝突和相容性問題。

    卸載舊版本的Docker

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

      說明

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

      #刪除Docker相關源
      sudo rm -f /etc/yum.repos.d/docker*.repo
      #卸載舊版本的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時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

    1. 執行以下命令安裝Docker社區版本。

      說明

      如果您使用的是非阿里雲伺服器,請將http://mirrors.cloud.aliyuncs.com替換為https://mirrors.aliyun.com

      #添加Docker軟體包源
      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外掛程式
      sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      #啟動Docker
      sudo systemctl start docker
      #設定Docker守護進程在系統啟動時自動啟動
      sudo systemctl enable docker
    2. 通過查看Docker版本命令,驗證Docker是否安裝成功。

      sudo docker -v

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

    CentOS 7.x

    在安裝最新版本的Docker之前,請確保先卸載當前安裝的Docker及其相關組件,避免潛在的安裝衝突和相容性問題。

    卸載舊版本的Docker

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

      說明

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

      #刪除Docker相關源
      sudo rm -f /etc/yum.repos.d/docker*.repo
      #卸載舊版本的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時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

    1. 執行以下命令安裝Docker社區版本。

      說明

      如果您使用的是非阿里雲伺服器,請將http://mirrors.cloud.aliyuncs.com替換為https://mirrors.aliyun.com

      #添加Docker軟體包源
      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外掛程式
      sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      #啟動Docker
      sudo systemctl start docker
      #設定Docker守護進程在系統啟動時自動啟動
      sudo systemctl enable docker
    2. 通過查看Docker版本命令,驗證Docker是否安裝成功。

      sudo docker -v

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

    CentOS 8.x

    在安裝最新版本的Docker之前,請確保先卸載當前安裝的Docker及其相關組件,避免潛在的安裝衝突和相容性問題。

    卸載舊版本的Docker

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

      說明

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

      #刪除Docker相關源
      sudo rm -f /etc/yum.repos.d/docker*.repo
      #卸載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時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

    1. 執行以下命令安裝Docker社區版本。

      說明

      如果您使用的是非阿里雲伺服器,請將http://mirrors.cloud.aliyuncs.com替換為https://mirrors.aliyun.com

      #添加Docker軟體包源
      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外掛程式
      sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      #啟動Docker
      sudo systemctl start docker
      #設定Docker守護進程在系統啟動時自動啟動
      sudo systemctl enable docker
    2. 通過查看Docker版本命令,驗證Docker是否安裝成功。

      sudo docker -v

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

    Ubuntu

    在安裝最新版本的Docker之前,請確保先卸載當前安裝的Docker及其相關組件,避免潛在的安裝衝突和相容性問題。

    卸載舊版本的Docker

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

      說明

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

      #刪除Docker相關源
      sudo rm -f /etc/apt/sources.list.d/*docker*.list
      #卸載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時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

    1. 執行以下命令安裝Docker社區版本。

      說明

      如果您使用的是非阿里雲伺服器,請將http://mirrors.cloud.aliyuncs.com替換為https://mirrors.aliyun.com

      #更新包管理工具
      sudo apt-get update
      #添加Docker軟體包源
      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外掛程式
      sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      #啟動Docker
      sudo systemctl start docker
      #設定Docker守護進程在系統啟動時自動啟動
      sudo systemctl enable docker
    2. 通過查看Docker版本命令,驗證Docker是否安裝成功。

      sudo docker -v

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

    Debian

    在安裝最新版本的Docker之前,請確保先卸載當前安裝的Docker及其相關組件,避免潛在的安裝衝突和相容性問題。

    卸載舊版本的Docker

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

      說明

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

      #刪除Docker相關源
      sudo rm -f /etc/apt/sources.list.d/*docker*.list
      #卸載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時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

    1. 執行以下命令安裝Docker社區版本。

      說明

      如果您使用的是非阿里雲伺服器,請將http://mirrors.cloud.aliyuncs.com替換為https://mirrors.aliyun.com

      #更新包管理工具
      sudo apt-get update
      #添加Docker軟體包源
      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"
      #安裝Docker社區版本,容器運行時containerd.io,以及Docker構建和Compose外掛程式
      sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      #啟動Docker
      sudo systemctl start docker
      #設定Docker守護進程在系統啟動時自動啟動
      sudo systemctl enable docker
    2. 通過查看Docker版本命令,驗證Docker是否安裝成功。

      sudo docker -v

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

    Fedora

    在安裝最新版本的Docker之前,請確保先卸載當前安裝的Docker及其相關組件,避免潛在的安裝衝突和相容性問題。

    卸載舊版本的Docker

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

      說明

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

      #刪除Docker相關源
      sudo rm -f /etc/yum.repos.d/docker*.repo
      #卸載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時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

    1. 執行以下命令安裝Docker社區版本。

      說明

      如果您使用的是非阿里雲伺服器,請將http://mirrors.cloud.aliyuncs.com替換為https://mirrors.aliyun.com

      #添加Docker軟體包源
      sudo wget -O /etc/yum.repos.d/docker-ce.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外掛程式
      sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      #啟動Docker
      sudo systemctl start docker
      #設定Docker守護進程在系統啟動時自動啟動
      sudo systemctl enable docker
    2. 通過查看Docker版本命令,驗證Docker是否安裝成功。

      sudo docker -v

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

    Red Hat

    在安裝最新版本的Docker之前,請確保先卸載當前安裝的Docker及其相關組件,避免潛在的安裝衝突和相容性問題。

    卸載舊版本的Docker

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

      說明

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

      #刪除Docker相關源
      sudo rm -f /etc/yum.repos.d/docker*.repo
      #卸載舊版本的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時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

    1. 執行以下命令安裝Docker社區版本。

      說明

      如果您使用的是非阿里雲伺服器,請將http://mirrors.cloud.aliyuncs.com替換為https://mirrors.aliyun.com

      #添加Docker軟體包源
      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外掛程式
      sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      #啟動Docker
      sudo systemctl start docker
      #設定Docker守護進程在系統啟動時自動啟動
      sudo systemctl enable docker
    2. 通過查看Docker版本命令,驗證Docker是否安裝成功。

      sudo docker -v

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

    Anolis OS

    在安裝最新版本的Docker之前,請確保先卸載當前安裝的Docker及其相關組件,避免潛在的安裝衝突和相容性問題。

    卸載舊版本的Docker

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

      說明

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

      #刪除Docker相關源
      sudo rm -f /etc/yum.repos.d/docker*.repo
      #卸載舊版本的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時,鏡像、容器、儲存卷和網路不會被自動刪除。如果您想要刪除這些資料,需要手動刪除。

    1. 執行以下命令安裝Docker社區版本。

      說明

      如果您使用的是非阿里雲伺服器,請將http://mirrors.cloud.aliyuncs.com替換為https://mirrors.aliyun.com

      #添加Docker軟體包源
      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外掛程式
      sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      #啟動Docker
      sudo systemctl start docker
      #設定Docker守護進程在系統啟動時自動啟動
      sudo systemctl enable docker
    2. 通過查看Docker版本命令,驗證Docker是否安裝成功。

      sudo docker -v

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

建立簡單Web程式鏡像

以下是建立基於Nginx鏡像的簡單Web程式鏡像。

  1. 構建Web程式鏡像。

    #拉取Nginx鏡像
    sudo docker pull nginx:latest
    #建立Dockerfile設定Nginx作為基礎鏡像,並在Web伺服器的根目錄建立一個顯示Hello World!的index.html檔案。
    sudo tee Dockerfile <<-'EOF'
    FROM nginx:latest
    RUN echo 'Hello World!' > /usr/share/nginx/html/index.html
    EOF
    #構建鏡像,鏡像名稱為hello-world
    sudo docker build . -t hello-world:latest
  2. 啟動Web程式鏡像的容器,並且命名容器名稱為hello-world

    sudo docker run -d -p 80:80 --name hello-world hello-world:latest
  3. 執行curl http://localhost命令,驗證Web程式是否正確顯示Hello World!

安裝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外掛程式

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

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
    #將可執行許可權賦予安裝目標路徑中的獨立二進位檔案
    sudo chmod +x /usr/local/bin/docker-compose
    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  2. 執行查看版本命令,測試是否安裝成功。

    sudo docker-compose version

使用Docker Compose部署應用

以下是建立基於WordPress鏡像的Web程式。

  1. 建立Compose編排檔案並啟動WordPress服務。

    #建立編排檔案,添加Mysql與WordPress
    sudo tee docker-compose.yaml <<-'EOF'
    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
          #資料庫ROOT使用者密碼
          MYSQL_RANDOM_ROOT_PASSWORD: '1'
        volumes:
          - db:/var/lib/mysql
    
    volumes:
      wordpress:
      db:
    EOF
    #啟動服務容器。
    sudo env "PATH=$PATH" docker compose up -d
  2. 在瀏覽器中輸入https://輕量應用服務執行個體的公網IP,即可進入WordPress配置頁面,您可以根據介面提示配置相關參數後,訪問WordPress。

常見問題

http://mirrors.cloud.aliyuncs.com無法訪問

  • 問題現象:地址http://mirrors.cloud.aliyuncs.com無法訪問。

  • 可能原因:網路不穩定。

  • 解決方案:請將http://mirrors.cloud.aliyuncs.com替換為https://mirrors.aliyun.com

    說明

    使用https://mirrors.aliyun.com需要您的執行個體已開通公網。如您不清楚如何開通公網,請參見開通公網

執行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。

執行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即可。

相關文檔