Alibaba Cloudが提供するDockerリポジトリを使用して、Elastic Compute Service (ECS) インスタンスにDockerをすばやくインストールできます。 このトピックでは、Linux ECSインスタンスにDockerをインストールする方法、Dockerを使用してイメージを作成する方法、およびDocker Composeを使用してアプリケーションの構築、デプロイ、および管理のプロセスを合理化する方法について説明します。
Dockerのインストール
前提条件
次の要件を満たすECSインスタンスが作成されます。 ECSインスタンスの作成方法については、「カスタム起動タブでインスタンスを作成する」をご参照ください。
オペレーティングシステム: Alibaba Cloud Linux 3 64ビット、Alibaba Cloud Linux 2 64ビット、CentOS 7.x 64ビット、CentOS 8.x 64ビット、Ubuntu 22、Ubuntu 20、Debian 11、またはDebian 12。
ネットワークタイプ: Virtual Private Cloud (VPC)
IPアドレス: インスタンスに静的パブリックIPアドレス (自動割り当てまたはシステム割り当てパブリックIPアドレスとも呼ばれます) が割り当てられるか、elastic IPアドレス (EIP) に関連付けられます。 静的パブリックIPアドレスをECSインスタンスに割り当てる方法、またはEIPをECSインスタンスに関連付ける方法については、「ECSインスタンスのパブリック帯域幅の有効化」をご参照ください。
セキュリティグループ: インバウンドルールは、インスタンスが属するセキュリティグループに追加され、ポート22と80のトラフィックを許可します。 インバウンドセキュリティグループルールを追加する方法の詳細については、「セキュリティグループルールの追加」をご参照ください。
手順
ECS インスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
Dockerをインストールします。
Alibaba Cloud Linux 3
次のコマンドを実行して、Docker Community Edition (Docker-CE) のDandified YUM (DNF) リポジトリを追加します。
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
次のコマンドを実行して、Alibaba Cloud Linux 3専用のDNFリポジトリプラグインをインストールします。
sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
次のコマンドを実行してDockerをインストールします。
sudo dnf -y install docker-ce --nobest
説明Dockerインストールの問題を解決する方法については、このトピックのFAQセクションを参照してください。
Alibaba Cloud Linux 2
次のコマンドを実行して、YUMリポジトリをダウンロードします。
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
次のコマンドを実行して、Alibaba Cloud Linux 2専用のYUMリポジトリプラグインをインストールします。
sudo yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
次のコマンドを実行してDockerをインストールします。
sudo yum -y install docker-ce
CentOS 7.x
次のコマンドを実行して、YUMリポジトリをダウンロードします。
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
次のコマンドを実行してDockerをインストールします。
sudo yum -y install docker-ce
CentOS 8.x
CentOS 8リポジトリのアドレスを変更します。
CentOS8はEOLに到達しました。 Linuxコミュニティルールに従って、すべてのコンテンツが次のCentOS 8リポジトリアドレスから削除され http://mirror.centos.org/centos/8/ た。 Alibaba CloudでデフォルトのCentOS 8リポジトリを引き続き使用すると、エラーが報告されます。 CentOS 8の特定のインストールパッケージを使用するには、CentOS 8リポジトリアドレスを変更します。 詳細については、「CentOS 8リポジトリアドレスの変更」をご参照ください。
次のコマンドを実行してDNFをインストールします。
sudo yum -y install dnf
次のコマンドを実行して、Dockerストレージドライバの依存関係パッケージをインストールします。
sudo dnf install -y device-mapper-persistent-data lvm2
次のコマンドを実行して、安定したDockerリポジトリを追加します。
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
次のコマンドを実行して、Dockerリポジトリが追加されているかどうかを確認します。
sudo dnf list docker-ce
次のコマンド出力は、Dockerリポジトリが追加されたことを示します。
次のコマンドを実行してDockerをインストールします。
sudo dnf install -y docker-ce --nobest
Ubuntu 18、Ubuntu 22、Ubuntu 20、Debian 11、またはDebian 12
次のコマンドを実行して、ソフトウェアパッケージのリストを更新します。
sudo apt update
次のコマンドを実行して、Dockerに必要な依存関係をインストールします。
sudo apt-get -y install ca-certificates curl
/etc/apt/keyrings
ディレクトリを作成し、Dockerの公式GNU Privacy Guard (GPG) キーをディレクトリにダウンロードします。Ubuntu 18、Ubuntu 20、またはUbuntu 22
sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc
Debian 11またはDebian 12
sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc
システムのソフトウェアリポジトリリストにDockerリポジトリを追加します。
Ubuntu 18、Ubuntu 20、またはUbuntu 22
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] http://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Debian 11またはDebian 12
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] http://mirrors.aliyun.com/docker-ce/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
次のコマンドを実行して、ソフトウェアパッケージのリストを更新します。
sudo apt update
次のコマンドを実行してDockerをインストールします。
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
Docker
のバージョンを確認します。docker -v
次のコマンド出力は、Dockerがインストールされていることを示します。
Dockerデーモンを起動し、システムの起動時に起動するようにDockerデーモンを設定します。
次のコマンドを実行してDockerを起動し、システム起動時にDockerを起動するように設定します。
sudo systemctl start docker sudo systemctl enable docker
次のコマンドを実行して、Dockerが起動しているかどうかを確認します。
sudo systemctl status docker
次のコマンド出力は、Dockerが開始されたことを示します。
Dockerの基本操作
このセクションでは、Dockerの基本的な使用方法についてのみ説明します。 Dockerの使用方法の詳細については、Dockerの公式Webサイトをご覧ください。
次のコマンドを実行して、Dockerデーモンを管理します。
sudo systemctl start docker # Run the Docker daemon. sudo systemctl stop docker # Stop the Docker daemon. sudo systemctl restart docker # Restart the Docker daemon. sudo systemctl enable docker # Configure the Docker daemon to start on system startup. sudo systemctl status docker # Check the status of the Docker daemon.
画像の管理
この例では、Alibaba Cloud Container RegistryのApacheイメージを使用して、Dockerを使用してイメージを管理する方法を説明します。
画像を引き出します。
sudo docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
タグを変更します。 Alibaba Cloud Container Registryのイメージの名前は長いです。 タグを使用して画像を簡単に識別できます。
sudo docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1
既存の画像を表示します。
sudo docker images
イメージを強制的に削除します。
sudo docker rmi -f registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
コンテナーの管理
重要次のコードスニペットで使用する <Image ID> 値を照会するには、
docker images
コマンドを実行します。コンテナーでコマンドを実行する前に、コンテナーで
cat /etc/os-release
コマンドを実行して、オペレーティングシステムのタイプとバージョンを表示します。 次に、オペレーティングシステムのタイプとバージョンに適したコマンドを決定します。
コンテナーを起動します。
デーモンモードまたは対話モードでコンテナを起動できます。
説明コンテナーがデーモンモードで起動されている場合、コンテナーを終了した後もコンテナーは実行中の状態のままです。
コンテナがインタラクティブモードで起動された場合、コンテナを終了すると、コンテナのステータスは
[終了]
に変わります。 コンテナを再開するには、sudo docker start <container ID>
コマンドを実行します。
デーモンモードでコンテナを起動する
sudo docker run -d --name <Container name> <Image ID>
インタラクティブモードでコンテナを起動する
# Start a new container in interactive mode. sudo docker run -it <Image ID> /bin/bash
コンテナーIDを照会します。
sudo docker ps -a
コンテナーを停止状態で起動します。
sudo docker start <Container ID>
実行中のコンテナでコマンドを実行します。 例:
sudo docker exec -it <Container ID> /bin/bash
説明コンテナーを終了するには、
exit
コマンドを実行します。
Dockerを使用したイメージの作成
ここでは、Dockerfileから単純なカスタムNGINXイメージを作成する方法について説明します。
次のコマンドを実行してイメージをプルします。 この例では、Alibaba Cloud Container RegistryからApacheイメージがプルされます。
sudo docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
画像のタグを変更して、画像を簡単に識別します。
sudo docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1
Dockerfileを作成して編集します。
次のコマンドを実行して、Dockerfileを作成および編集します。
vim Dockerfile
I
キーを押してInsertモードに入り、次のコンテンツをファイルに追加します。#Specify a base image. FROM aliweb:v1 #Specify the owner of the base image. MAINTAINER DTSTACK #Specify the command that you want to run before the container starts. Append the command to the end of the RUN command. To run many commands, we recommend that you write the commands to a script. Each Docker image can contain up to 127 layers. RUN mkdir /dtstact #Specify the commands that are run on system startup. The last command must be a frontend command that constantly runs. This prevents the container from immediately exiting after starting up. ENTRYPOINT ping www.aliyun.com
Esc
キーを押して:wq
と入力し、enter
キーを押してDockerfileを保存して閉じます。
次のコマンドを実行して、ベースNGINXイメージに基づいてイメージを作成します。
次の形式でコマンドを実行します。
docker build -t <イメージ名 >:< イメージバージョン> 。
. コマンドの最後にあるピリオド(.)
は、Dockerfileのディレクトリを示します。 ピリオド (.) が必要です。 たとえば、次のコマンドを実行して、バージョンv2でaliwebという名前のイメージをビルドします。sudo docker build -t aliweb:v2 .
次のコマンドを実行して、イメージがビルドされているかどうかを確認します。
sudo docker images
次のコマンド出力は、イメージがビルドされたことを示します。
Docker Composeのインストールと使用
Docker Composeは、Dockerチームによって開発され、複数のコンテナを定義および実行するために使用されるオープンソースのコンテナーオーケストレーションツールです。 Docker Composeでは、YAMLファイルを使用してアプリケーションのサービスを設定し、コマンドを実行してYAMLファイルの設定を解析し、設定からすべてのサービスを作成して開始します。 Docker Composeは、O&Mコストの削減とデプロイ効率の向上に役立ちます。
Docker Composeの詳細については、Dockerの公式Webサイトをご覧ください。
Docker ComposeはPython 3以降でのみサポートされます。 pipがインストールされていることを確認します。
Docker Composeのインストール
次のコマンドを実行してsetuptoolsをインストールします。
sudo pip3 install -U pip setuptools
次のコマンドを実行してDocker Composeをインストールします。
sudo pip3 install docker-compose
次のコマンドを実行して、Docker Composeがインストールされているかどうかを確認します。
docker-compose --version
Docker Composeのバージョンが返された場合、Docker Composeがインストールされます。
Docker Composeを使用したアプリケーションのデプロイ
このセクションでは、Docker Composeを使用してWordPressをデプロイする方法について説明します。
docker-compose.yamlファイルを作成して編集します。
次のコマンドを実行して、docker-compose.yamlファイルを作成します。
sudo vim docker-compose.yaml
I
キーを押してInsertモードに入り、次のコンテンツをファイルに追加します。この例では、WordPressのインストールに使用するコンテンツが追加されます。
version: '3.1' # Specify the version of Docker Compose. services: wordpress: # Specify a service name. image: wordpress # Specify an image name. restart: always # Configure the container to start each time Docker starts. ports: - 80:80 # Specify a port mapping. environment: # Configure environment variables. WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: 123456 WORDPRESS_DB_NAME: wordpress volumes: # Configure mappings between containers and ECS volumes. - wordpress:/var/www/html db: # Specify a service name. image: mysql:5.7 # Specify an image name. restart: always # Configure the container to start each time Docker starts. ports: - 3306:3306 # Specify a port mapping. environment: # Configure environment variables. MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: 123456 MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: # Configure mappings between containers and ECS volumes. - db:/var/lib/mysql volumes: wordpress: db:
Esc
キーを押して挿入モードを終了し、:wq
と入力し、enterキーを押してファイルを保存して閉じます。
次のコマンドを実行して、アプリケーションを起動します。
sudo env "PATH=$PATH" docker-compose up -d
ブラウザのアドレスバーに
http:// <ECSインスタンスのパブリックIPアドレス>
形式のアドレスを入力し、WordPress設定ページに移動します。 このページでは、WordPressにアクセスするためのプロンプトに従ってパラメーターを設定できます。
よくある質問
Linux ECSインスタンスまたはLinux ECSインスタンスのコンテナーでsystemctlコマンドを実行したときにエラーが発生した場合はどうすればよいですか。
Linux ECSインスタンスでdnf config-managerコマンドを実行したときにエラーが発生した場合はどうすればよいですか。
Linux ECSインスタンスでdnf install docker-ceコマンドを実行したときにエラーが発生した場合はどうすればよいですか。
関連ドキュメント
Dockerの使用方法については、「Dockerドキュメント」をご参照ください。
Dockerイメージを使用します。
Alibaba Cloud Container RegistryはArtifact Centerをリリースし、Alibaba Cloud WebサイトとOpenAnolisコミュニティから安全で信頼できるベースコンテナイメージをコンテナ開発者に無料で提供します。 Dockerをインストールした後、Artifact CenterのDockerコンテナイメージを使用して、アプリケーションデプロイ、環境開発、オペレーティングシステムのセットアップ、AIまたはビッグデータ学習フレームワークの構築などの特定のビジネス要件を満たすことができます。
Dockerイメージのプルを高速化します。
P2Pアクセラレーション機能を使用して、イメージのプルとアプリケーションのデプロイを高速化できます。 詳細については、「DockerがインストールされているホストでのP2Pアクセラレーション機能の使用」をご参照ください。
DockerでCLIツールを設定して、Alibaba Cloudリソースを管理できます。 詳細については、「DockerコンテナーでAlibaba Cloud CLIを実行する」をご参照ください。
Alibaba Cloud Container Registryを使用して、コンテナ化されたアプリケーションを実行および管理することもできます。