このトピックでは、Elastic Compute Service(ECS)インスタンスに Docker と Docker Compose をインストールして使用する方法について説明します。
Docker のインストール
Alibaba Cloud Linux 3
最新バージョンの Docker をインストールする前に、インストールの競合や互換性の問題を防ぐために、現在のバージョンの Docker と関連コンポーネントをアンインストールしてください。
次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。
説明サーバーが Alibaba Cloud にデプロイされていない場合は、
http://mirrors.cloud.aliyuncs.com
をhttps://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
Docker のバージョンをクエリして、Docker がインストールされているかどうかを確認します。
sudo docker -v
次のコマンド出力が返された場合、Docker は ECS インスタンスにインストールされています。
Alibaba Cloud Linux 2
最新バージョンの Docker をインストールする前に、潜在的なインストールの競合や互換性の問題を回避するために、Docker の現在のバージョンと関連コンポーネントをアンインストールしてください。
次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。
説明サーバーが Alibaba Cloud にデプロイされていない場合は、
http://mirrors.cloud.aliyuncs.com
をhttps://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
Docker のバージョンをクエリして、Docker がインストールされているかどうかを確認します。
sudo docker -v
次のコマンド出力が返された場合、Docker は ECS インスタンスにインストールされています。
CentOS 7.x
最新バージョンの Docker をインストールする前に、潜在的なインストールの競合や互換性の問題を回避するために、Docker の現在のバージョンと関連コンポーネントをアンインストールしてください。
次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。
説明サーバーが Alibaba Cloud にデプロイされていない場合は、
http://mirrors.cloud.aliyuncs.com
をhttps://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
Docker のバージョンをクエリして、Docker がインストールされているかどうかを確認します。
sudo docker -v
次のコマンド出力が返された場合、Docker は ECS インスタンスにインストールされています。
CentOS 8.x
最新バージョンの Docker をインストールする前に、インストールの競合や互換性の問題を防ぐために、現在のバージョンの Docker と関連コンポーネントをアンインストールしてください。
次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。
説明サーバーが Alibaba Cloud にデプロイされていない場合は、
http://mirrors.cloud.aliyuncs.com
をhttps://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
Docker のバージョンをクエリして、Docker がインストールされているかどうかを確認します。
sudo docker -v
次のコマンド出力が返された場合、Docker は ECS インスタンスにインストールされています。
Ubuntu
最新バージョンの Docker をインストールする前に、インストールの競合や互換性の問題を防ぐために、現在のバージョンの Docker と関連コンポーネントをアンインストールしてください。
次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。
説明サーバーが Alibaba Cloud にデプロイされていない場合は、
http://mirrors.cloud.aliyuncs.com
をhttps://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
Docker のバージョンをクエリして、Docker がインストールされているかどうかを確認します。
sudo docker -v
次のコマンド出力が返された場合、Docker は ECS インスタンスにインストールされています。
Debian
最新バージョンの Docker をインストールする前に、インストールの競合や互換性の問題を防ぐために、現在のバージョンの Docker と関連コンポーネントをアンインストールしてください。
次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。
説明サーバーが Alibaba Cloud にデプロイされていない場合は、
http://mirrors.cloud.aliyuncs.com
をhttps://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
Docker のバージョンをクエリして、Docker がインストールされているかどうかを確認します。
sudo docker -v
次のコマンド出力が返された場合、Docker は ECS インスタンスにインストールされています。
Fedora
最新バージョンの Docker をインストールする前に、インストールの競合や互換性の問題を防ぐために、現在のバージョンの Docker と関連コンポーネントをアンインストールしてください。
次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。
説明サーバーが Alibaba Cloud にデプロイされていない場合は、
http://mirrors.cloud.aliyuncs.com
をhttps://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
Docker のバージョンをクエリして、Docker がインストールされているかどうかを確認します。
sudo docker -v
次のコマンド出力が返された場合、Docker は ECS インスタンスにインストールされています。
Red Hat
最新バージョンの Docker をインストールする前に、インストールの競合や互換性の問題を防ぐために、現在のバージョンの Docker と関連コンポーネントをアンインストールしてください。
次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。
説明サーバーが Alibaba Cloud にデプロイされていない場合は、
http://mirrors.cloud.aliyuncs.com
をhttps://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
Docker のバージョンをクエリして、Docker がインストールされているかどうかを確認します。
sudo docker -v
次のコマンド出力が返された場合、Docker は ECS インスタンスにインストールされています。
Anolis OS
最新バージョンの Docker をインストールする前に、潜在的なインストールの競合や互換性の問題を回避するために、Docker の現在のバージョンと関連コンポーネントをアンインストールしてください。
次のコマンドを実行して、Docker Community Edition(Docker-CE)をインストールします。
説明サーバーが Alibaba Cloud にデプロイされていない場合は、
http://mirrors.cloud.aliyuncs.com
をhttps://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
Docker のバージョンをクエリして、Docker がインストールされているかどうかを確認します。
sudo docker -v
次のコマンド出力が返された場合、Docker は ECS インスタンスにインストールされています。
シンプルな Web アプリケーションイメージの作成
次のセクションでは、NGINX イメージに基づいてシンプルな Web アプリケーションイメージを作成する方法について説明します。
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
Web アプリケーションイメージに基づいて作成されたコンテナーを起動し、コンテナーに
hello-world
という名前を付けます。sudo docker run -d -p 80:80 --name hello-world hello-world:latest
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
スタンドアロン 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
Docker Compose のバージョンをクエリして、スタンドアロン Docker Compose がインストールされているかどうかを確認します。
sudo docker-compose version
Docker Compose を使用してアプリケーションをデプロイする
次のセクションでは、WordPress イメージに基づいて Web アプリケーションを作成する方法について説明します。
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
ブラウザのアドレスバーに
http://<ECS インスタンスのパブリック IP アドレス>
形式のアドレスを入力して、WordPress にアクセスします。説明ECS インスタンスが属するセキュリティグループでポート
80
を開く必要があります。セキュリティグループでポートを開く方法については、「セキュリティグループルールの追加」を参照してください。
よくある質問
アクセスできない場合はどうすればよいですか?http://mirrors.cloud.aliyuncs.com
?
dnf config-manager コマンドを実行するとエラーが発生する場合はどうすればよいですか?
dnf install docker-ce コマンドを実行するとエラーが発生する場合はどうすればよいですか?
参考資料
Docker の使用方法については、Docker ドキュメント を参照してください。
Alibaba Cloud Container Registry は、アーティファクトセンターをリリースして、開発者に Alibaba Cloud Web サイトおよび OpenAnolis コミュニティからの安全で信頼できるベースコンテナイメージを無料で提供しています。詳細については、「アーティファクトセンターの概要」を参照してください。
Container Registry Enterprise Edition の P2P アクセラレーション機能を使用して、イメージのプルを高速化できます。詳細については、「Docker がインストールされているホストで P2P アクセラレーション機能を使用する」を参照してください。
Docker で CLI ツールを設定して、Alibaba Cloud リソースを管理できます。詳細については、「Docker コンテナーで Alibaba Cloud CLI を実行する」を参照してください。