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

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

最終更新日:Dec 24, 2024

Dockerは、アプリケーションを開発、公開、および実行できるオープンプラットフォームです。 このトピックでは、Elastic Compute Service (ECS) インスタンスにDockerをインストールして使用する方法について説明します。

Dockerのインストール

Alibaba Cloud Linux 3

最新バージョンのDockerをインストールする前に、docker -vコマンドを実行して現在のDockerバージョンを照会します。 コマンドが使用できないことをコマンド出力が示す場合、Dockerはインストールされません。 以前のバージョンのDockerをインストールした場合は、まずDockerおよび関連コンポーネントをアンインストールする必要があります。

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

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

  3. 次のコマンドを実行して、Docker関連のソースを削除します。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. パッケージ管理ツールを更新します。

    sudo dnf -y update
  2. ECSインスタンスにAlibaba Cloudリポジトリを追加します。 リポジトリにはDockerソフトウェアパッケージが含まれており、コマンドを実行してDockerをインストールおよび更新できます。

    重要

    この手順をスキップすると、ネットワーク上の理由でDockerのインストールに失敗する可能性があります。

    • ECSインスタンスがインターネットにアクセスできる場合は、次のコマンドを実行します。

      sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    • ECSインスタンスがインターネットにアクセスできない場合は、仮想プライベートクラウド (VPC) エンドポイントを使用し、次のコマンドを実行します。

      sudo dnf config-manager --add-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
  3. Alibaba Cloud Linux専用のDandified YUM (DNF) リポジトリプラグインをインストールします。

    sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
  4. Docker Community Edition (Docker-CE) 、containerd.ioコンテナランタイム、およびDocker BuildおよびComposeプラグインをインストールします。

    説明

    Docker Compose部品を使用する場合は、dockerとcomposeの間にハイフン (-) をコマンドに入力しないでください。 サンプルコマンド: docker compose version

    sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  5. Dockerを起動し、システム起動時に起動するようにDockerデーモンを設定します。 これにより、システムが起動するたびにDockerサービスが自動的に起動します。

    説明

    systemctlコマンドの実行時にエラーが発生した場合は、エラーのトラブルシューティングを行います。 詳細については、「」をご参照ください。Linuxインスタンスでsystemctlコマンドを実行したときにエラーが発生した場合はどうすればよいですか?

    sudo systemctl start docker
    sudo systemctl enable docker
  6. Dockerのバージョンを照会して、Dockerがインストールされているかどうかを確認します。

    sudo docker -v

    次のコマンド出力が返された場合、DockerがECSインスタンスにインストールされます。image

Alibaba Cloud Linux 2

最新バージョンのDockerをインストールする前に、docker -vコマンドを実行して現在のDockerバージョンを照会します。 コマンドが使用できないことをコマンド出力が示す場合、Dockerはインストールされません。 以前のバージョンのDockerをインストールした場合は、まずDockerおよび関連コンポーネントをアンインストールする必要があります。

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

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

  3. 次のコマンドを実行して、Docker関連のソースを削除します。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. パッケージ管理ツールを更新します。

    sudo yum -y update
  2. ECSインスタンスにAlibaba Cloudリポジトリを追加します。 リポジトリにはDockerソフトウェアパッケージが含まれており、コマンドを実行してDockerをインストールおよび更新できます。

    重要

    この手順をスキップすると、ネットワーク上の理由でDockerのインストールに失敗する可能性があります。

    • ECSインスタンスがインターネットにアクセスできる場合は、次のコマンドを実行します。

      sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    • ECSインスタンスがインターネットにアクセスできない場合は、仮想プライベートクラウド (VPC) エンドポイントを使用し、次のコマンドを実行します。

      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
  3. Alibaba Cloud Linux専用のYellowdog Updater Modified (YUM) リポジトリプラグインをインストールします。

    sudo yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
  4. Docker Community Edition (Docker-CE) 、containerd.ioコンテナランタイム、およびDocker BuildおよびComposeプラグインをインストールします。

    説明

    Docker Compose部品を使用する場合は、dockerとcomposeの間にハイフン (-) をコマンドに入力しないでください。 サンプルコマンド: docker compose version

    sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  5. Dockerを起動し、システム起動時に起動するようにDockerデーモンを設定します。 これにより、システムが起動するたびにDockerサービスが自動的に起動します。

    説明

    systemctlコマンドの実行時にエラーが発生した場合は、エラーのトラブルシューティングを行います。 詳細については、「」をご参照ください。Linuxインスタンスでsystemctlコマンドを実行したときにエラーが発生した場合はどうすればよいですか?

    sudo systemctl start docker
    sudo systemctl enable docker
  6. Dockerのバージョンを照会して、Dockerがインストールされているかどうかを確認します。

    sudo docker -v

    次のコマンド出力が返された場合、DockerがECSインスタンスにインストールされます。image

CentOS 7.x

最新バージョンのDockerをインストールする前に、docker -vコマンドを実行して現在のDockerバージョンを照会します。 コマンドが使用できないことをコマンド出力が示す場合、Dockerはインストールされません。 以前のバージョンのDockerをインストールした場合は、まずDockerおよび関連コンポーネントをアンインストールする必要があります。

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

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

  3. 次のコマンドを実行して、Docker関連のソースを削除します。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. パッケージ管理ツールを更新します。

    sudo yum -y update
  2. ECSインスタンスにAlibaba Cloudリポジトリを追加します。 リポジトリにはDockerソフトウェアパッケージが含まれており、コマンドを実行してDockerをインストールおよび更新できます。

    重要

    この手順をスキップすると、ネットワーク上の理由でDockerのインストールに失敗する可能性があります。

    • ECSインスタンスがインターネットにアクセスできる場合は、次のコマンドを実行します。

      sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    • ECSインスタンスがインターネットにアクセスできない場合は、仮想プライベートクラウド (VPC) エンドポイントを使用し、次のコマンドを実行します。

      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
  3. Docker Community Edition (Docker-CE) 、containerd.ioコンテナランタイム、およびDocker BuildおよびComposeプラグインをインストールします。

    説明

    Docker Compose部品を使用する場合は、dockerとcomposeの間にハイフン (-) をコマンドに入力しないでください。 サンプルコマンド: docker compose version

    sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  4. Dockerを起動し、システム起動時に起動するようにDockerデーモンを設定します。 これにより、システムが起動するたびにDockerサービスが自動的に起動します。

    説明

    systemctlコマンドの実行時にエラーが発生した場合は、エラーのトラブルシューティングを行います。 詳細については、「」をご参照ください。Linuxインスタンスでsystemctlコマンドを実行したときにエラーが発生した場合はどうすればよいですか?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. Dockerのバージョンを照会して、Dockerがインストールされているかどうかを確認します。

    sudo docker -v

    次のコマンド出力が返された場合、DockerがECSインスタンスにインストールされます。image

CentOS 8.x

最新バージョンのDockerをインストールする前に、docker -vコマンドを実行して現在のDockerバージョンを照会します。 コマンドが使用できないことをコマンド出力が示す場合、Dockerはインストールされません。 以前のバージョンのDockerをインストールした場合は、まずDockerおよび関連コンポーネントをアンインストールする必要があります。

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

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

  3. 次のコマンドを実行して、Docker関連のソースを削除します。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. パッケージ管理ツールを更新します。

    sudo dnf -y update
  2. ECSインスタンスにAlibaba Cloudリポジトリを追加します。 リポジトリにはDockerソフトウェアパッケージが含まれており、コマンドを実行してDockerをインストールおよび更新できます。

    重要

    この手順をスキップすると、ネットワーク上の理由でDockerのインストールに失敗する可能性があります。

    • ECSインスタンスがインターネットにアクセスできる場合は、次のコマンドを実行します。

      sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    • ECSインスタンスがインターネットにアクセスできない場合は、仮想プライベートクラウド (VPC) エンドポイントを使用し、次のコマンドを実行します。

      sudo dnf config-manager --add-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
  3. Docker Community Edition (Docker-CE) 、containerd.ioコンテナランタイム、およびDocker BuildおよびComposeプラグインをインストールします。

    説明

    Docker Compose部品を使用する場合は、dockerとcomposeの間にハイフン (-) をコマンドに入力しないでください。 サンプルコマンド: docker compose version

    sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  4. Dockerを起動し、システム起動時に起動するようにDockerデーモンを設定します。 これにより、システムが起動するたびにDockerサービスが自動的に起動します。

    説明

    systemctlコマンドの実行時にエラーが発生した場合は、エラーのトラブルシューティングを行います。 詳細については、「」をご参照ください。Linuxインスタンスでsystemctlコマンドを実行したときにエラーが発生した場合はどうすればよいですか?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. Dockerのバージョンを照会して、Dockerがインストールされているかどうかを確認します。

    sudo docker -v

    次のコマンド出力が返された場合、DockerがECSインスタンスにインストールされます。image

Ubuntu

最新バージョンのDockerをインストールする前に、docker -vコマンドを実行して現在のDockerバージョンを照会します。 コマンドが使用できないことをコマンド出力が示す場合、Dockerはインストールされません。 以前のバージョンのDockerをインストールした場合は、まずDockerおよび関連コンポーネントをアンインストールする必要があります。

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

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

  3. 次のコマンドを実行して、Docker関連のソースを削除します。

    sudo rm -f /etc/apt/sources.list.d/*docker*.list
  1. パッケージ管理ツールを更新します。

    sudo apt-get update
  2. ECSインスタンスにAlibaba Cloudリポジトリを追加します。 リポジトリにはDockerソフトウェアパッケージが含まれており、コマンドを実行してDockerをインストールおよび更新できます。

    重要

    この手順をスキップすると、ネットワーク上の理由でDockerのインストールに失敗する可能性があります。

    • ECSインスタンスがインターネットにアクセスできる場合は、次のコマンドを実行します。

      sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
      sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
      sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    • ECSインスタンスがインターネットにアクセスできない場合は、仮想プライベートクラウド (VPC) エンドポイントを使用し、次のコマンドを実行します。

      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"
  3. Docker Community Edition (Docker-CE) 、containerd.ioコンテナランタイム、およびDocker BuildおよびComposeプラグインをインストールします。

    説明

    Docker Compose部品を使用する場合は、dockerとcomposeの間にハイフン (-) をコマンドに入力しないでください。 サンプルコマンド: docker compose version

    sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  4. Dockerを起動し、システム起動時に起動するようにDockerデーモンを設定します。 これにより、システムが起動するたびにDockerサービスが自動的に起動します。

    説明

    systemctlコマンドの実行時にエラーが発生した場合は、エラーのトラブルシューティングを行います。 詳細については、「」をご参照ください。Linuxインスタンスでsystemctlコマンドを実行したときにエラーが発生した場合はどうすればよいですか?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. Dockerのバージョンを照会して、Dockerがインストールされているかどうかを確認します。

    sudo docker -v

    次のコマンド出力が返された場合、DockerがECSインスタンスにインストールされます。image

Debian

最新バージョンのDockerをインストールする前に、docker -vコマンドを実行して現在のDockerバージョンを照会します。 コマンドが使用できないことをコマンド出力が示す場合、Dockerはインストールされません。 以前のバージョンのDockerをインストールした場合は、まずDockerおよび関連コンポーネントをアンインストールする必要があります。

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

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

  3. 次のコマンドを実行して、Docker関連のソースを削除します。

    sudo rm -f /etc/apt/sources.list.d/*docker*.list
  1. パッケージ管理ツールを更新します。

    sudo apt-get update
  2. ECSインスタンスにAlibaba Cloudリポジトリを追加します。 リポジトリにはDockerソフトウェアパッケージが含まれており、コマンドを実行してDockerをインストールおよび更新できます。

    重要

    この手順をスキップすると、ネットワーク上の理由でDockerのインストールに失敗する可能性があります。

    • ECSインスタンスがインターネットにアクセスできる場合は、次のコマンドを実行します。

      sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
      sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add -
      sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable"
      sudo apt-get update
    • ECSインスタンスがインターネットにアクセスできない場合は、仮想プライベートクラウド (VPC) エンドポイントを使用し、次のコマンドを実行します。

      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"
      sudo apt-get update
  3. Docker Community Edition (Docker-CE) 、containerd.ioコンテナランタイム、およびDocker BuildおよびComposeプラグインをインストールします。

    説明

    Docker Compose部品を使用する場合は、dockerとcomposeの間にハイフン (-) をコマンドに入力しないでください。 サンプルコマンド: docker compose version

    sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  4. Dockerを起動し、システム起動時に起動するようにDockerデーモンを設定します。 これにより、システムが起動するたびにDockerサービスが自動的に起動します。

    説明

    systemctlコマンドの実行時にエラーが発生した場合は、エラーのトラブルシューティングを行います。 詳細については、「」をご参照ください。Linuxインスタンスでsystemctlコマンドを実行したときにエラーが発生した場合はどうすればよいですか?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. Dockerのバージョンを照会して、Dockerがインストールされているかどうかを確認します。

    sudo docker -v

    次のコマンド出力が返された場合、DockerがECSインスタンスにインストールされます。image

フェドラ

最新バージョンのDockerをインストールする前に、docker -vコマンドを実行して現在のDockerバージョンを照会します。 コマンドが使用できないことをコマンド出力が示す場合、Dockerはインストールされません。 以前のバージョンのDockerをインストールした場合は、まずDockerおよび関連コンポーネントをアンインストールする必要があります。

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

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

  3. 次のコマンドを実行して、Docker関連のソースを削除します。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. パッケージ管理ツールを更新します。

    sudo dnf -y update
  2. ECSインスタンスにAlibaba Cloudリポジトリを追加します。 リポジトリにはDockerソフトウェアパッケージが含まれており、コマンドを実行してDockerをインストールおよび更新できます。

    重要

    この手順をスキップすると、ネットワーク上の理由でDockerのインストールに失敗する可能性があります。

    • ECSインスタンスがインターネットにアクセスできる場合は、次のコマンドを実行します。

      sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/fedora/docker-ce.repo
    • ECSインスタンスがインターネットにアクセスできない場合は、仮想プライベートクラウド (VPC) エンドポイントを使用し、次のコマンドを実行します。

      sudo dnf config-manager --add-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
  3. Docker Community Edition (Docker-CE) 、containerd.ioコンテナランタイム、およびDocker BuildおよびComposeプラグインをインストールします。

    説明

    Docker Compose部品を使用する場合は、dockerとcomposeの間にハイフン (-) をコマンドに入力しないでください。 サンプルコマンド: docker compose version

    sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  4. Dockerを起動し、システム起動時に起動するようにDockerデーモンを設定します。 これにより、システムが起動するたびにDockerサービスが自動的に起動します。

    説明

    systemctlコマンドの実行時にエラーが発生した場合は、エラーのトラブルシューティングを行います。 詳細については、「」をご参照ください。Linuxインスタンスでsystemctlコマンドを実行したときにエラーが発生した場合はどうすればよいですか?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. Dockerのバージョンを照会して、Dockerがインストールされているかどうかを確認します。

    sudo docker -v

    次のコマンド出力が返された場合、DockerがECSインスタンスにインストールされます。image

Red Hat

最新バージョンのDockerをインストールする前に、docker -vコマンドを実行して現在のDockerバージョンを照会します。 コマンドが使用できないことをコマンド出力が示す場合、Dockerはインストールされません。 以前のバージョンのDockerをインストールした場合は、まずDockerおよび関連コンポーネントをアンインストールする必要があります。

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

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

  3. 次のコマンドを実行して、Docker関連のソースを削除します。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. パッケージ管理ツールを更新します。

    sudo yum -y update
  2. ECSインスタンスにAlibaba Cloudリポジトリを追加します。 リポジトリにはDockerソフトウェアパッケージが含まれており、コマンドを実行してDockerをインストールおよび更新できます。

    重要

    この手順をスキップすると、ネットワーク上の理由でDockerのインストールに失敗する可能性があります。

    • ECSインスタンスがインターネットにアクセスできる場合は、次のコマンドを実行します。

      sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/rhel/docker-ce.repo
    • ECSインスタンスがインターネットにアクセスできない場合は、仮想プライベートクラウド (VPC) エンドポイントを使用し、次のコマンドを実行します。

      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
  3. Docker Community Edition (Docker-CE) 、containerd.ioコンテナランタイム、およびDocker BuildおよびComposeプラグインをインストールします。

    説明

    Docker Compose部品を使用する場合は、dockerとcomposeの間にハイフン (-) をコマンドに入力しないでください。 サンプルコマンド: docker compose version

    sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  4. Dockerを起動し、システム起動時に起動するようにDockerデーモンを設定します。 これにより、システムが起動するたびにDockerサービスが自動的に起動します。

    説明

    systemctlコマンドの実行時にエラーが発生した場合は、エラーのトラブルシューティングを行います。 詳細については、「」をご参照ください。Linuxインスタンスでsystemctlコマンドを実行したときにエラーが発生した場合はどうすればよいですか?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. Dockerのバージョンを照会して、Dockerがインストールされているかどうかを確認します。

    sudo docker -v

    次のコマンド出力が返された場合、DockerがECSインスタンスにインストールされます。image

アナリスOS

最新バージョンのDockerをインストールする前に、docker -vコマンドを実行して現在のDockerバージョンを照会します。 コマンドが使用できないことをコマンド出力が示す場合、Dockerはインストールされません。 以前のバージョンのDockerをインストールした場合は、まずDockerおよび関連コンポーネントをアンインストールする必要があります。

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

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

  3. 次のコマンドを実行して、Docker関連のソースを削除します。

    sudo rm -f /etc/yum.repos.d/docker*.repo
  1. パッケージ管理ツールを更新します。

    sudo yum -y update
  2. ECSインスタンスにAlibaba Cloudリポジトリを追加します。 リポジトリにはDockerソフトウェアパッケージが含まれており、コマンドを実行してDockerをインストールおよび更新できます。

    重要

    この手順をスキップすると、ネットワーク上の理由でDockerのインストールに失敗する可能性があります。

    • ECSインスタンスがインターネットにアクセスできる場合は、次のコマンドを実行します。

      sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    • ECSインスタンスがインターネットにアクセスできない場合は、仮想プライベートクラウド (VPC) エンドポイントを使用し、次のコマンドを実行します。

      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
  3. Docker Community Edition (Docker-CE) 、containerd.ioコンテナランタイム、およびDocker BuildおよびComposeプラグインをインストールします。

    説明

    Docker Compose部品を使用する場合は、dockerとcomposeの間にハイフン (-) をコマンドに入力しないでください。 サンプルコマンド: docker compose version

    sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  4. Dockerを起動し、システム起動時に起動するようにDockerデーモンを設定します。 これにより、システムが起動するたびにDockerサービスが自動的に起動します。

    説明

    systemctlコマンドの実行時にエラーが発生した場合は、エラーのトラブルシューティングを行います。 詳細については、「」をご参照ください。Linuxインスタンスでsystemctlコマンドを実行したときにエラーが発生した場合はどうすればよいですか?

    sudo systemctl start docker
    sudo systemctl enable docker
  5. Dockerのバージョンを照会して、Dockerがインストールされているかどうかを確認します。

    sudo docker -v

    次のコマンド出力が返された場合、DockerがECSインスタンスにインストールされます。image

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

次の例では、NGINXイメージをベースイメージとして使用して、単純なwebアプリケーションイメージを作成する方法について説明します。

準備

インターネットにアクセスできるインスタンスで、次のdocker pullコマンドを実行して最新のNGINXイメージを取得します。

sudo docker pull nginx:latest

イメージの作成

  1. Dockerfileファイルを作成します。 Dockerfileファイルは、Dockerイメージのビルド方法を定義する特殊なテキストファイルです。 Dockerfileファイルで、Dockerの基本イメージを指定し、基本イメージにインストールするソフトウェアパッケージと構成する設定を指定します。

    sudo touch Dockerfile
  2. コンテンツを追加して、作成したDockerfileファイルを変更します。

    FROM nginx:latest
    RUN echo 'Hello World!' > /usr/share/nginx/html/index.html
  3. Dockerfileファイルを使用してイメージをビルドします。

    sudo docker build . -t hello-world:latest
  4. 新しいイメージに基づいてコンテナを作成し、コンテナにhello-worldという名前を付けます。

    sudo docker run -d -p 80:80 --name hello-world hello-world:latest
  5. イメージが期待どおりに実行されるかどうかを確認します。 curl http:// localhostコマンドを実行します。 こんにちは世界! が返されると、イメージは期待どおりに実行されます。

Docker Composeの使用

Docker Composeは、複数のコンテナを定義および実行するためにDockerチームによって開発されたオープンソースのコンテナーオーケストレーションツールです。 Docker Composeでは、YAMLファイルを使用してアプリケーションのサービスを設定し、docker composeコマンドを実行してYAMLファイルの設定を解析し、設定に基づいてすべてのサービスを作成して開始します。 Docker Composeは、O&Mコストの削減とデプロイ効率の向上に役立ちます。

Docker Composeの詳細については、「Docker Compose」をご参照ください。

Docker Composeのインストール

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

sudo docker compose version

期待される出力: Docker ComposeバージョンvN.N.N。v N.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プラグイン

  1. Docker Composeプラグインをインストールします。

    説明

    Docker Composeプラグインのインストール時に問題が発生した場合は、ECSインスタンスにAlibaba Cloudリポジトリを追加する必要があります。 Alibaba Cloudリポジトリの追加方法については、「ECSインスタンスへのAlibaba Cloudリポジトリの追加」をご参照ください。

    • 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
  2. Docker Composeのバージョンを照会して、Docker Composeプラグインがインストールされているかどうかを確認します。

    sudo docker compose version

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

スタンドアロン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
  2. スタンドアロンDocker Composeをインストールするパスで、スタンドアロンバイナリファイルに対する実行権限を付与します。

    sudo chmod +x /usr/local/bin/docker-compose
  3. Docker Composeのバージョンを照会して、スタンドアロンのDocker Composeがインストールされているかどうかを確認します。

    説明

    スタンドアロンdocker composeのインストール後にDocker-Composeコマンドを実行したときに問題が発生した場合、システム環境変数にスタンドアロンDocker Composeのインストールパスが含まれていない可能性があります。 この問題を解決するには、/usr/binディレクトリまたは環境変数に含まれる別のディレクトリへのシンボリックリンクを作成します。

    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    sudo docker-compose version

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

このセクションでは、Docker Composeを使用してWordPressをデプロイする方法について説明します。

  1. 次のコマンドを実行して、docker-compose.yamlファイルを作成および編集します。

    sudo vim docker-compose.yaml
  2. Iキーを押してInsertモードに入り、次のコンテンツをファイルに追加してWordPressおよびMySQLサービスを定義します。

    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:
  3. Escキーを押して挿入モードを終了し、:wqと入力し、enterキーを押してファイルを保存して閉じます。

  4. 次のコマンドを実行してサービスを開始します。

    sudo env "PATH=$PATH" docker compose up -d
  5. ブラウザのアドレスバーにhttp:// <ECSインスタンスのパブリックIPアドレス> 形式のアドレスを入力し、WordPress設定ページに移動します。 このページでは、WordPressにアクセスするためのプロンプトに従ってパラメーターを設定できます。

    説明

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

よくある質問

Linux ECSインスタンスで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を再インストールします。

Linux ECSインスタンスでdnf install docker-ceコマンドを実行したときにエラーが発生した場合はどうすればよいですか。

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

問題の説明2: 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が提供する使用可能なリポジトリに置き換えます。

# Back up the expired repository. 
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# Download the CentOS-Base.repo file provided by Alibaba Cloud to the /etc/yum.repos.d/ directory. 
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.aliyuncs.com/repo/Centos-vault-8.5.2111.repo
# Replace the repository addresses in the Alibaba Cloud repository with repository addresses that are accessible to the ECS instance. 
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
# Clear the existing installation package in the cache and generate a new installation package in the cache based on the repository that you specified. 
sudo yum clean all && sudo yum makecache

上記の手順を実行した後、Dockerを再インストールします。

説明

Alibaba Cloudが提供するリポジトリを使用しない場合は、/etc/yum.repos.d/CentOS-Base.repoファイルで使用できないリポジトリアドレスをコメントアウトし、Dockerを再インストールします。

関連ドキュメント