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

Elastic Compute Service:Linux への Docker のインストールと使用

最終更新日:May 16, 2026

Linux に Docker および Docker Compose をインストールして、アプリケーションをポータブルなコンテナにパッケージ化します。

Docker のインストール

Alibaba Cloud Linux 4

Docker をインストールする前に、競合を防ぐため、既存のすべての Docker コンポーネントをアンインストールしてください。

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

  1. 旧バージョンの Docker および関連パッケージをアンインストールします。

    # Docker 関連のソースを削除
    sudo rm -f /etc/yum.repos.d/docker*.repo
    # Docker および関連パッケージをアンインストール
    sudo dnf -y remove \  
    docker \
    moby \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Docker をアンインストールしても、/var/lib/docker/ に保存されているイメージ、コンテナ、ボリューム、ネットワークは 削除されません。必要に応じて、このディレクトリを手動で削除してください。

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

    • 推奨:

      # Moby ランタイムをインストール
      sudo yum install -y moby
    • Docker Community Edition をインストールします。

      Alibaba Cloud サーバーを使用していない場合は、http://mirrors.cloud.aliyuncs.comhttps://mirrors.aliyun.com に置き換えてください。
      # Docker CE パッケージリポジトリを追加
      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
      
      # CentOS 9 または CentOS 10 など、インストールする CentOS バージョンを選択し、$releasever を対応するバージョン番号に置き換える必要があります。
      # CentOS 9 を使用する場合は、次のコマンドを実行します:
      sudo sed -i 's|$releasever|9|' /etc/yum.repos.d/docker-ce.repo
      # CentOS 10 を使用する場合は、次のコマンドを実行します:
      sudo sed -i 's|$releasever|10|' /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
      
      # 注: Alibaba Cloud Linux 4 が提供するネイティブの Moby コンポーネントに戻すには、まず docker-ce コンポーネントを削除し、CentOS リポジトリを無効にします。
      sudo yum remove -y docker-ce docker-ce-cli
      sudo rm -rf /etc/yum.repos.d/docker-ce.repo
  2. Docker を起動し、起動時の自動起動を有効にします。

    # サービスを起動し、起動時に自動的に開始されるように設定
    sudo systemctl start docker
    sudo systemctl enable docker
    
    # インストールを確認
    docker --version  # インストールされたバージョンが表示されます
説明
  • Moby はデフォルトのコンテナランタイムであり、引き続きアップデートが提供されます。

  • 旧バージョンの Docker コンポーネントは前方互換性のために引き続き使用できますが、アップデートは提供されません。

Alibaba Cloud Linux 3

Docker をインストールする前に、競合を防ぐため、既存のすべての Docker コンポーネントをアンインストールしてください。

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

  1. 旧バージョンの 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/ に保存されているイメージ、コンテナ、ボリューム、ネットワークは削除されません。必要に応じて、このディレクトリを手動で削除してください。

  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 コンポーネントをアンインストールしてください。

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

  1. 旧バージョンの 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/ に保存されているイメージ、コンテナ、ボリューム、ネットワークは削除されません。必要に応じて、このディレクトリを手動で削除してください。

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

    Alibaba Cloud サーバーを使用していない場合は、http://mirrors.cloud.aliyuncs.comhttps://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 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 コンポーネントをアンインストールしてください。

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

  1. 旧バージョンの 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/ に保存されているイメージ、コンテナ、ボリューム、ネットワークは削除されません。必要に応じて、このディレクトリを手動で削除してください。

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

    Alibaba Cloud サーバーを使用していない場合は、http://mirrors.cloud.aliyuncs.comhttps://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 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 コンポーネントをアンインストールしてください。

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

  1. 旧バージョンの 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/ に保存されているイメージ、コンテナ、ボリューム、ネットワークは削除されません。必要に応じて、このディレクトリを手動で削除してください。

  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 コンポーネントをアンインストールしてください。

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

  1. 旧バージョンの 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/ に保存されているイメージ、コンテナ、ボリューム、ネットワークは削除されません。必要に応じて、このディレクトリを手動で削除してください。

  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 コンポーネントをアンインストールしてください。

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

  1. 旧バージョンの 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/ に保存されているイメージ、コンテナ、ボリューム、ネットワークは削除されません。必要に応じて、このディレクトリを手動で削除してください。

  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 コンポーネントをアンインストールしてください。

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

  1. 旧バージョンの 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/ に保存されているイメージ、コンテナ、ボリューム、ネットワークは削除されません。必要に応じて、このディレクトリを手動で削除してください。

  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 コンポーネントをアンインストールしてください。

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

  1. 旧バージョンの 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/ に保存されているイメージ、コンテナ、ボリューム、ネットワークは削除されません。必要に応じて、このディレクトリを手動で削除してください。

  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 コンポーネントをアンインストールしてください。

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

  1. 旧バージョンの 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/ に保存されているイメージ、コンテナ、ボリューム、ネットワークは削除されません。必要に応じて、このディレクトリを手動で削除してください。

  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

Web アプリケーションのデプロイ

  1. イメージをビルドします。

    # 最新の Nginx イメージをプル
    sudo docker pull nginx:latest
    # Nginx をベースイメージとして設定し、Web サーバーのルートディレクトリに「Hello World!」を表示する index.html ファイルを作成する Dockerfile を作成します。
    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. イメージから hello-world という名前のコンテナーを起動します。

    sudo docker run -d -p 80:80 --name hello-world hello-world:latest
  3. curl http://localhost を実行してデプロイを検証します。出力に Hello World! が表示されます。

Docker Compose のインストール

Docker Compose を使用すると、単一の YAML ファイルからマルチサービスアプリケーションを定義および管理できます。

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

アプリケーションのデプロイ

  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. WordPress を起動し、<database_password> をご自身の MySQL パスワードに置き換えてください。

    Docker Compose V2 は、ハイフンの代わりにスペースを使用し、たとえば docker compose version のように記述します。
    # サービスコンテナを起動します。
    sudo env "PATH=$PATH" "WORDPRESS_DB_PASSWORD=<database_password>" docker compose -f docker-compose.yaml up -d
  3. ブラウザでhttp://<お使いの ECS インスタンスのパブリック IP アドレス> を開き、WordPress にアクセスします。

    お使いの セキュリティグループ が、ポート 80 へのインバウンドトラフィックを許可していることを確認してください。

よくある質問

非 root ユーザーとして Docker を実行するには?

デフォルトでは、Docker コマンドには root 権限 (sudo 経由) が必要です。コマンドごとに sudo を使用するのを避けるには、ユーザーを 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 を使用するには、パブリック IP アドレスが必要です。 詳細については、「インターネットアクセスを有効にする」をご参照ください。

dnf config-manager コマンドが失敗するのはなぜですか?

  • 現象: 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 バージョンが古い。

  • 解決策: dnfsudo dnf update dnf を実行して更新し、その後 Docker のインストールを再試行します。

dnf install docker-ce コマンドが失敗するのはなぜですか?

  • 現象: 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 のインストールを再試行します。

  • 現象: 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
    # Alibaba Cloud ソース内のソフトウェアソースアドレスを 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 のインストールを再試行してください。

関連ドキュメント