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

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

最終更新日:Jan 31, 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 をアンインストールしても、イメージ、コンテナー、永続ボリューム (PV)、またはネットワークは自動的に削除されません。このデータは、デフォルトで /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 をアンインストールしても、イメージ、コンテナー、永続ボリューム (PV)、またはネットワークは自動的に削除されません。このデータは、デフォルトで /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 をアンインストールしても、イメージ、コンテナー、永続ボリューム (PV)、またはネットワークは自動的に削除されません。このデータは、デフォルトで /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 をアンインストールしても、イメージ、コンテナー、永続ボリューム (PV)、またはネットワークは自動的に削除されません。このデータは、デフォルトで /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 をアンインストールしても、イメージ、コンテナー、永続ボリューム (PV)、またはネットワークは自動的に削除されません。このデータは、デフォルトで /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 をアンインストールしても、イメージ、コンテナー、永続ボリューム (PV)、またはネットワークは自動的に削除されません。このデータは、デフォルトで /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 をアンインストールしても、イメージ、コンテナー、永続ボリューム (PV)、またはネットワークは自動的に削除されません。このデータは、デフォルトで /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 をアンインストールしても、イメージ、コンテナー、永続ボリューム (PV)、またはネットワークは自動的に削除されません。このデータは、デフォルトで /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 をアンインストールしても、イメージ、コンテナー、永続ボリューム (PV)、またはネットワークは自動的に削除されません。このデータは、デフォルトで /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 をアンインストールしても、イメージ、コンテナー、永続ボリューム (PV)、またはネットワークは自動的に削除されません。このデータは、デフォルトで /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 をベースイメージとして設定し、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. 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 を使用して、単一の 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

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. 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 でのトラフィックを許可するインバウンドルールを追加していることを確認してください。

よくある質問

Docker を非 root ユーザーとして実行する方法

デフォルトでは、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 コマンドが失敗するのはなぜですか?

  • 現象: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 リポジトリを 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 のインストールを再試行してください。

参考資料