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

Elastic Compute Service:Docker のインストール

最終更新日:Mar 19, 2025

このトピックでは、Elastic Compute Service(ECS)インスタンスに Docker と Docker Compose をインストールして使用する方法について説明します。

Docker のインストール

Alibaba Cloud Linux 3

最新バージョンの Docker をインストールする前に、インストールの競合や互換性の問題を防ぐために、現在のバージョンの Docker と関連コンポーネントをアンインストールしてください。

以前のバージョンの Docker をアンインストールする

  1. 次のコマンドを実行して、以前のバージョンの Docker と関連ソフトウェアパッケージをアンインストールし、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 関連のデータを手動で削除します。Docker 関連のデータは /var/lib/docker/ ディレクトリに保存されます。Docker がアンインストールされると、イメージ、コンテナー、ボリューム、ネットワークに関する情報は自動的に削除されません。特定の Docker 関連のデータが必要ない場合は、手動でデータを削除してください。

  1. 次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。

    説明

    サーバーが 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 専用の Dandified YUM(DNF)リポジトリプラグインをインストールします。
    sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
    # Docker-CE、containerd.io コンテナーランタイム、Docker Build および 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 は ECS インスタンスにインストールされています。image

Alibaba Cloud Linux 2

最新バージョンの Docker をインストールする前に、潜在的なインストールの競合や互換性の問題を回避するために、Docker の現在のバージョンと関連コンポーネントをアンインストールしてください。

以前のバージョンの Docker をアンインストールする

  1. 次のコマンドを実行して、以前のバージョンの Docker と関連ソフトウェアパッケージをアンインストールし、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 関連のデータを手動で削除します。Docker 関連のデータは /var/lib/docker/ ディレクトリに保存されます。Docker がアンインストールされると、イメージ、コンテナー、ボリューム、ネットワークに関する情報は自動的に削除されません。特定の Docker 関連のデータが必要ない場合は、手動でデータを削除してください。

  1. 次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。

    説明

    サーバーが 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 専用の Yellowdog Updater Modified(YUM)リポジトリプラグインをインストールします。
    sudo yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
    # Docker-CE、containerd.io コンテナーランタイム、Docker Build および 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 は ECS インスタンスにインストールされています。image

CentOS 7.x

最新バージョンの Docker をインストールする前に、潜在的なインストールの競合や互換性の問題を回避するために、Docker の現在のバージョンと関連コンポーネントをアンインストールしてください。

以前のバージョンの Docker をアンインストールする

  1. 次のコマンドを実行して、以前のバージョンの Docker と関連ソフトウェアパッケージをアンインストールし、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 関連のデータを手動で削除します。Docker 関連のデータは /var/lib/docker/ ディレクトリに保存されます。Docker がアンインストールされると、イメージ、コンテナー、ボリューム、ネットワークに関する情報は自動的に削除されません。特定の Docker 関連のデータが必要ない場合は、手動でデータを削除してください。

  1. 次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。

    説明

    サーバーが 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-CE、containerd.io コンテナーランタイム、Docker Build および 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 は ECS インスタンスにインストールされています。image

CentOS 8.x

最新バージョンの Docker をインストールする前に、インストールの競合や互換性の問題を防ぐために、現在のバージョンの Docker と関連コンポーネントをアンインストールしてください。

以前のバージョンの Docker をアンインストールする

  1. 次のコマンドを実行して、以前のバージョンの Docker と関連ソフトウェアパッケージをアンインストールし、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 関連のデータを手動で削除します。Docker 関連のデータは /var/lib/docker/ ディレクトリに保存されます。Docker がアンインストールされると、イメージ、コンテナー、ボリューム、ネットワークに関する情報は自動的に削除されません。特定の Docker 関連のデータが必要ない場合は、手動でデータを削除してください。

  1. 次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。

    説明

    サーバーが 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-CE、containerd.io コンテナーランタイム、Docker Build および 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 は ECS インスタンスにインストールされています。image

Ubuntu

最新バージョンの Docker をインストールする前に、インストールの競合や互換性の問題を防ぐために、現在のバージョンの Docker と関連コンポーネントをアンインストールしてください。

以前のバージョンの Docker をアンインストールする

  1. 次のコマンドを実行して、以前のバージョンの Docker と関連ソフトウェアパッケージをアンインストールし、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 関連のデータを手動で削除します。Docker 関連のデータは /var/lib/docker/ ディレクトリに保存されます。Docker がアンインストールされると、イメージ、コンテナー、ボリューム、ネットワークに関する情報は自動的に削除されません。特定の Docker 関連のデータが必要ない場合は、手動でデータを削除してください。

  1. 次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。

    説明

    サーバーが 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-CE、containerd.io コンテナーランタイム、Docker Build および 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 は ECS インスタンスにインストールされています。image

Debian

最新バージョンの Docker をインストールする前に、インストールの競合や互換性の問題を防ぐために、現在のバージョンの Docker と関連コンポーネントをアンインストールしてください。

以前のバージョンの Docker をアンインストールする

  1. 次のコマンドを実行して、以前のバージョンの Docker と関連ソフトウェアパッケージをアンインストールし、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 関連のデータを手動で削除します。Docker 関連のデータは /var/lib/docker/ ディレクトリに保存されます。Docker がアンインストールされると、イメージ、コンテナー、ボリューム、ネットワークに関する情報は自動的に削除されません。特定の Docker 関連のデータが必要ない場合は、手動でデータを削除してください。

  1. 次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。

    説明

    サーバーが 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-CE、containerd.io コンテナーランタイム、Docker Build および 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 は ECS インスタンスにインストールされています。image

Fedora

最新バージョンの Docker をインストールする前に、インストールの競合や互換性の問題を防ぐために、現在のバージョンの Docker と関連コンポーネントをアンインストールしてください。

以前のバージョンの Docker をアンインストールする

  1. 次のコマンドを実行して、以前のバージョンの Docker と関連ソフトウェアパッケージをアンインストールし、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 関連のデータを手動で削除します。Docker 関連のデータは /var/lib/docker/ ディレクトリに保存されます。Docker がアンインストールされると、イメージ、コンテナー、ボリューム、ネットワークに関する情報は自動的に削除されません。特定の Docker 関連のデータが必要ない場合は、手動でデータを削除してください。

  1. 次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。

    説明

    サーバーが 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-CE、containerd.io コンテナーランタイム、Docker Build および 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 は ECS インスタンスにインストールされています。image

Red Hat

最新バージョンの Docker をインストールする前に、インストールの競合や互換性の問題を防ぐために、現在のバージョンの Docker と関連コンポーネントをアンインストールしてください。

以前のバージョンの Docker をアンインストールする

  1. 次のコマンドを実行して、以前のバージョンの Docker と関連ソフトウェアパッケージをアンインストールし、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 関連のデータを手動で削除します。Docker 関連のデータは /var/lib/docker/ ディレクトリに保存されます。Docker がアンインストールされると、イメージ、コンテナー、ボリューム、ネットワークに関する情報は自動的に削除されません。特定の Docker 関連のデータが必要ない場合は、手動でデータを削除してください。

  1. 次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。

    説明

    サーバーが 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-CE、containerd.io コンテナーランタイム、Docker Build および 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 は ECS インスタンスにインストールされています。image

Anolis OS

最新バージョンの Docker をインストールする前に、潜在的なインストールの競合や互換性の問題を回避するために、Docker の現在のバージョンと関連コンポーネントをアンインストールしてください。

以前のバージョンの Docker をアンインストールする

  1. 次のコマンドを実行して、以前のバージョンの Docker と関連ソフトウェアパッケージをアンインストールし、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 関連のデータを手動で削除します。Docker 関連のデータは /var/lib/docker/ ディレクトリに保存されます。Docker がアンインストールされると、イメージ、コンテナー、ボリューム、ネットワークに関する情報は自動的に削除されません。特定の Docker 関連のデータが必要ない場合は、手動でデータを削除してください。

  1. 次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。

    説明

    サーバーが 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-CE、containerd.io コンテナーランタイム、Docker Build および 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 は ECS インスタンスにインストールされています。image

シンプルな Web アプリケーションイメージの作成

次のセクションでは、NGINX イメージに基づいてシンプルな Web アプリケーションイメージを作成する方法について説明します。

  1. Web アプリケーションイメージを作成します。

    # NGINX イメージをプルします。
    sudo docker pull nginx:latest
    # Dockerfile を作成して、NGINX をベースイメージとして指定し、Web サーバーのルートディレクトリに index.html ファイルを作成します。 index.html ファイルは、Hello World! を表示するために使用されます。
    sudo tee Dockerfile <<-'EOF'
    FROM nginx:latest
    RUN echo 'Hello World!' > /usr/share/nginx/html/index.html
    EOF
    # hello-world という名前の Web アプリケーションイメージを作成します。
    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 のインストール

このトピックで説明されている操作を実行して ECS インスタンスに Docker をインストールすると、Docker Compose プラグインがインスタンスに自動的にインストールされます。次のコマンドを実行して、Docker Compose のバージョンをクエリします。

sudo docker compose version

予期される出力:Docker Compose version vN.N.N。vN.N.N は Docker Compose のバージョンを示します。

Docker Compose プラグインが ECS インスタンスにインストールされていない場合、またはスタンドアロンの Docker Compose を使用したい場合は、次の手順を実行します。

重要
  • スタンドアロンの Docker Compose を使用する場合は、コマンドの docker と compose の間にハイフン(-)を含めます。コマンド例:docker-compose up

  • Docker Compose プラグインを使用する場合は、コマンドの docker と compose の間にハイフン(-)を含めないでください。コマンド例:docker compose up

Docker 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

Docker Compose のバージョンをクエリして、Docker Compose プラグインがインストールされているかどうかを確認します。

sudo docker compose version

スタンドアロン Docker Compose

  1. スタンドアロン Docker 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
    # スタンドアロン Docker Compose をインストールするパスにあるスタンドアロン バイナリファイルに実行権限を付与します。
    sudo chmod +x /usr/local/bin/docker-compose
    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  2. Docker Compose のバージョンをクエリして、スタンドアロン Docker Compose がインストールされているかどうかを確認します。

    sudo docker-compose version

Docker Compose を使用してアプリケーションをデプロイする

次のセクションでは、WordPress イメージに基づいて Web アプリケーションを作成する方法について説明します。

  1. Docker Compose オーケストレーションファイルを作成し、WordPress サービスを起動します。

    # Docker Compose オーケストレーションファイルを作成し、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
          # データベースのルートユーザーのパスワード。
          MYSQL_RANDOM_ROOT_PASSWORD: '1'
        volumes:
          - db:/var/lib/mysql
    
    volumes:
      wordpress:
      db:
    EOF
    # サービスコンテナーを起動します。
    sudo env "PATH=$PATH" docker compose up -d
  2. ブラウザのアドレスバーに http://<ECS インスタンスのパブリック IP アドレス> 形式のアドレスを入力して、WordPress にアクセスします。

    説明

    ECS インスタンスが属するセキュリティグループでポート 80 を開く必要があります。セキュリティグループでポートを開く方法については、「セキュリティグループルールの追加」を参照してください。

よくある質問

アクセスできない場合はどうすればよいですか?http://mirrors.cloud.aliyuncs.com

  • 問題の説明:URL http://mirrors.cloud.aliyuncs.com にアクセスできません。

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

  • 解決策:http://mirrors.cloud.aliyuncs.comhttps://mirrors.aliyun.com に置き換えてみてください。

    説明

    https://mirrors.aliyun.com にアクセスするには、インスタンスのパブリック帯域幅が有効になっていることを確認してください。詳細については、「パブリック帯域幅を有効にする」を参照してください。

dnf config-manager コマンドを実行するとエラーが発生する場合はどうすればよいですか?

  • 問題の説明:Linux ECS インスタンスで 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 ECS インスタンスで 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 ECS インスタンスで 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 を再インストールします。

参考資料