すべてのプロダクト
Search
ドキュメントセンター

Simple Application Server:Docker の手動デプロイ

最終更新日:Jan 17, 2026

Docker はオープンソースのアプリケーションコンテナエンジンです。コンテナのパッケージング、配布、実行を自動化するためのツールとサービスを提供します。Docker は、強力な隔離性、高い可搬性、簡素化された管理などの利点を提供します。このトピックでは、Linux Simple Application Server インスタンスに Docker および Docker Compose をインストールして使用する方法について説明します。

説明

事前準備

  • Linux Simple Application Server インスタンスを作成済みであること。詳細については、「Simple Application Server インスタンスの作成」をご参照ください。

  • Linux Simple Application Server インスタンスのファイアウォールのインバウンドルールにポート 80 と 22 を追加済みであること。詳細については、「ファイアウォールの設定」をご参照ください。

Docker のデプロイ

  1. Simple Application Server インスタンスにリモート接続します。詳細については、「Linux サーバーへのリモート接続」をご参照ください。

  2. ご利用のサーバーのオペレーティングシステムに基づいて Docker をデプロイします。

    Alibaba Cloud Linux 3

    競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。

    古いバージョンの Docker のアンインストール

    1. 古いバージョンの Docker、関連するソフトウェアパッケージ、リポジトリをアンインストールします。

      「package not installed」というメッセージは無視して問題ありません。
      # 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 をアンインストールしても、既存のイメージ、コンテナ、ボリューム、ネットワークは自動的に削除されません。デフォルトでは、Docker はこのデータを /var/lib/docker/ ディレクトリに保存します。すべてのデータを削除するには、このディレクトリを手動で削除する必要があります。

    1. Docker Community Edition をインストールします。

      Alibaba Cloud のサーバーを使用していない場合は、http://mirrors.cloud.aliyuncs.comhttps://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 Linux 3 用の dnf リポジトリ互換性プラグインをインストール
      sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
      # Docker Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール
      sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    2. Docker を起動し、起動時に自動的に開始されるように設定します。

      # Docker を起動
      sudo systemctl start docker
      # Docker が起動時に自動的に開始されるように設定
      sudo systemctl enable docker

    Ubuntu

    競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。

    古いバージョンの Docker のアンインストール

    1. 古いバージョンの Docker、関連するソフトウェアパッケージ、リポジトリをアンインストールします。

      「package not installed」というメッセージは無視して問題ありません。
      # 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 をアンインストールしても、既存のイメージ、コンテナ、ボリューム、ネットワークは自動的に削除されません。デフォルトでは、Docker はこのデータを /var/lib/docker/ ディレクトリに保存します。すべてのデータを削除するには、このディレクトリを手動で削除する必要があります。

    1. Docker Community Edition をインストールします。

      Alibaba Cloud のサーバーを使用していない場合は、http://mirrors.cloud.aliyuncs.comhttps://mirrors.aliyun.com に置き換えてください。
      # apt パッケージインデックスを更新
      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 Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール
      sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      
    2. Docker を起動し、起動時に自動的に開始されるように設定します。

      # Docker を起動
      sudo systemctl start docker
      # Docker が起動時に自動的に開始されるように設定
      sudo systemctl enable docker

    Debian

    競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。

    古いバージョンの Docker のアンインストール

    1. 古いバージョンの Docker、関連するソフトウェアパッケージ、リポジトリをアンインストールします。

      「package not installed」というメッセージは無視して問題ありません。
      # 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 をアンインストールしても、既存のイメージ、コンテナ、ボリューム、ネットワークは自動的に削除されません。デフォルトでは、Docker はこのデータを /var/lib/docker/ ディレクトリに保存します。すべてのデータを削除するには、このディレクトリを手動で削除する必要があります。

    1. Docker Community Edition をインストールします。

      Alibaba Cloud のサーバーを使用していない場合は、http://mirrors.cloud.aliyuncs.comhttps://mirrors.aliyun.com に置き換えてください。
      # apt パッケージインデックスを更新
      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 Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール
      sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    2. Docker を起動し、起動時に自動的に開始されるように設定します。

      # Docker を起動
      sudo systemctl start docker
      # Docker が起動時に自動的に開始されるように設定
      sudo systemctl enable docker

    Red Hat

    競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。

    古いバージョンの Docker のアンインストール

    1. 古いバージョンの Docker、関連するソフトウェアパッケージ、リポジトリをアンインストールします。

      「package not installed」というメッセージは無視して問題ありません。
      # 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 をアンインストールしても、既存のイメージ、コンテナ、ボリューム、ネットワークは自動的に削除されません。デフォルトでは、Docker はこのデータを /var/lib/docker/ ディレクトリに保存します。すべてのデータを削除するには、このディレクトリを手動で削除する必要があります。

    1. Docker Community Edition をインストールします。

      Alibaba Cloud のサーバーを使用していない場合は、http://mirrors.cloud.aliyuncs.comhttps://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 Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール
      sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    2. Docker を起動し、起動時に自動的に開始されるように設定します。

      # Docker を起動
      sudo systemctl start docker
      # Docker が起動時に自動的に開始されるように設定
      sudo systemctl enable docker

    Fedora

    競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。

    古いバージョンの Docker のアンインストール

    1. 古いバージョンの Docker、関連するソフトウェアパッケージ、リポジトリをアンインストールします。

      「package not installed」というメッセージは無視して問題ありません。
      # 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 をアンインストールしても、既存のイメージ、コンテナ、ボリューム、ネットワークは自動的に削除されません。デフォルトでは、Docker はこのデータを /var/lib/docker/ ディレクトリに保存します。すべてのデータを削除するには、このディレクトリを手動で削除する必要があります。

    1. Docker Community Edition をインストールします。

      Alibaba Cloud のサーバーを使用していない場合は、http://mirrors.cloud.aliyuncs.comhttps://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 Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール
      sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    2. Docker を起動し、起動時に自動的に開始されるように設定します。

      # Docker を起動
      sudo systemctl start docker
      # Docker が起動時に自動的に開始されるように設定
      sudo systemctl enable docker

    Anolis OS

    競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。

    古いバージョンの Docker のアンインストール

    1. 古いバージョンの Docker、関連するソフトウェアパッケージ、リポジトリをアンインストールします。

      「package not installed」というメッセージは無視して問題ありません。
      # 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 をアンインストールしても、既存のイメージ、コンテナ、ボリューム、ネットワークは自動的に削除されません。デフォルトでは、Docker はこのデータを /var/lib/docker/ ディレクトリに保存します。すべてのデータを削除するには、このディレクトリを手動で削除する必要があります。

    1. Docker Community Edition をインストールします。

      Alibaba Cloud のサーバーを使用していない場合は、http://mirrors.cloud.aliyuncs.comhttps://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 Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール
      sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    2. Docker を起動し、起動時に自動的に開始されるように設定します。

      # Docker を起動
      sudo systemctl start docker
      # Docker が起動時に自動的に開始されるように設定
      sudo systemctl enable docker

    Alibaba Cloud Linux 2

    競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。

    古いバージョンの Docker のアンインストール

    1. 古いバージョンの Docker、関連するソフトウェアパッケージ、リポジトリをアンインストールします。

      「package not installed」というメッセージは無視して問題ありません。
      # 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 をアンインストールしても、既存のイメージ、コンテナ、ボリューム、ネットワークは自動的に削除されません。デフォルトでは、Docker はこのデータを /var/lib/docker/ ディレクトリに保存します。すべてのデータを削除するには、このディレクトリを手動で削除する必要があります。

    1. Docker Community Edition をインストールします。

      Alibaba Cloud のサーバーを使用していない場合は、http://mirrors.cloud.aliyuncs.comhttps://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 Linux 2 用の yum リポジトリ互換性プラグインをインストール
      sudo yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
      # Docker Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール
      sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    2. Docker を起動し、起動時に自動的に開始されるように設定します。

      # Docker を起動
      sudo systemctl start docker
      # Docker が起動時に自動的に開始されるように設定
      sudo systemctl enable docker

    CentOS 7.x

    競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。

    古いバージョンの Docker のアンインストール

    1. 古いバージョンの Docker、関連するソフトウェアパッケージ、リポジトリをアンインストールします。

      「package not installed」というメッセージは無視して問題ありません。
      # 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 をアンインストールしても、既存のイメージ、コンテナ、ボリューム、ネットワークは自動的に削除されません。デフォルトでは、Docker はこのデータを /var/lib/docker/ ディレクトリに保存します。すべてのデータを削除するには、このディレクトリを手動で削除する必要があります。

    1. Docker Community Edition をインストールします。

      Alibaba Cloud のサーバーを使用していない場合は、http://mirrors.cloud.aliyuncs.comhttps://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 Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール
      sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    2. Docker を起動し、起動時に自動的に開始されるように設定します。

      # Docker を起動
      sudo systemctl start docker
      # Docker が起動時に自動的に開始されるように設定
      sudo systemctl enable docker

    CentOS 8.x

    競合や互換性の問題を避けるため、まず既存の Docker コンポーネントをアンインストールします。

    古いバージョンの Docker のアンインストール

    1. 古いバージョンの Docker、関連するソフトウェアパッケージ、リポジトリをアンインストールします。

      「package not installed」というメッセージは無視して問題ありません。
      # 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 をアンインストールしても、既存のイメージ、コンテナ、ボリューム、ネットワークは自動的に削除されません。デフォルトでは、Docker はこのデータを /var/lib/docker/ ディレクトリに保存します。すべてのデータを削除するには、このディレクトリを手動で削除する必要があります。

    1. Docker Community Edition をインストールします。

      Alibaba Cloud のサーバーを使用していない場合は、http://mirrors.cloud.aliyuncs.comhttps://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 Community Edition、containerd.io コンテナランタイム、Docker Buildx および Compose プラグインをインストール
      sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    2. Docker を起動し、起動時に自動的に開始されるように設定します。

      # Docker を起動
      sudo systemctl start docker
      # Docker が起動時に自動的に開始されるように設定
      sudo systemctl enable docker

Docker を使用した Web アプリケーションのクイックデプロイ

  1. Web アプリケーションのイメージをビルドします。

    # 最新の Nginx イメージをプル
    sudo docker pull nginx:latest
    # Nginx をベースに "Hello World!" ページを提供する Dockerfile を作成
    sudo tee Dockerfile <<-'EOF'
    FROM nginx:latest
    RUN echo 'Hello World!' > /usr/share/nginx/html/index.html
    EOF
    # イメージをビルドし、hello-world:latest としてタグ付け
    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 のインストール

Alibaba Cloud Linux、CentOS、Red Hat、Anolis、Fedora

sudo yum -y install docker-compose-plugin

Ubuntu、Debian

sudo apt-get -y install docker-compose-plugin

Docker Compose を使用したアプリケーションのデプロイ

  1. docker-compose.yaml という名前のオーケストレーションファイルを作成します。

    # オーケストレーションファイルを作成し、MySQL と WordPress サービスを追加
    sudo tee docker-compose.yaml <<-'EOF'
    version: '3.1'
    
    services:
      wordpress:
        image: wordpress
        restart: always
        ports:
          - "80:80"
        environment:
          # データベースホストアドレス
          WORDPRESS_DB_HOST: wordpress_db
          # データベースユーザー名
          WORDPRESS_DB_USER: wordpress
          # データベースパスワード
          WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD}
          # データベース名
          WORDPRESS_DB_NAME: wordpress
        volumes:
          - wordpress:/var/www/html
    
      db:
        image: mysql:5.7
        restart: always
        container_name: wordpress_db
        environment:
          # データベース名
          MYSQL_DATABASE: wordpress
          # データベースユーザー名
          MYSQL_USER: wordpress
          # データベースパスワード
          MYSQL_PASSWORD: ${WORDPRESS_DB_PASSWORD}
          # データベース root ユーザーのランダムパスワード
          MYSQL_RANDOM_ROOT_PASSWORD: ${WORDPRESS_DB_PASSWORD}
        volumes:
          - db:/var/lib/mysql
    
    volumes:
      wordpress:
      db:
    EOF
  2. ブラウザで https://<Simple Application Server インスタンスのパブリック IP アドレス> を入力します。WordPress の設定ページが表示されます。ページ上のプロンプトに従ってパラメータを設定し、WordPress にアクセスします。

トラブルシューティング

非 root ユーザーの Docker 権限の設定

デフォルトでは、Docker コマンドには root 権限 (sudo を使用) が必要です。sudo なしで docker コマンドを実行し、最小権限の原則に従うには、ユーザーを docker グループに追加します。

  1. 現在のユーザーを docker グループに追加します。

    sudo usermod -aG docker $USER
  2. newgrp docker を実行して変更を適用します。その後、sudo なしで docker コマンドを実行できます。

http://mirrors.cloud.aliyuncs.com にアクセスできない

  • 症状:アドレス http://mirrors.cloud.aliyuncs.com に到達できません。

  • 原因:ネットワークが不安定な可能性があります。

  • 解決策:http://mirrors.cloud.aliyuncs.comhttps://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 dnfdnf パッケージを最新バージョンに更新してから、再度 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 リポジトリを Alibaba Cloud が提供する有効なものに置き換えます。

    # 期限切れのリポジトリファイルをバックアップします。
    sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    # Alibaba Cloud が提供する 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 のインストールを試みてください。

関連ドキュメント