Docker Composeは、複数のコンテナーを単一のサービスとして定義および実行するために使用できるツールです。 Docker Composeを使用すると、複数のコンテナーをリンクして、単一のコマンドからアプリケーションをデプロイできます。これは主に、開発、テスト、およびステージング環境で使用されます。 Docker Composeは、YAMLファイルを使用してファイル内に複雑なスタックを定義し、単一のコマンドで実行します。
このチュートリアルでは、CentOS8にDockerComposeをインストールして使用する方法を示します。
- CentOS8を実行しているサーバー。
- ルートパスワードはサーバーで構成されています。
Dockerをインストールする
開始する前に、サーバーにDockerがインストールされていることを確認してください。インストールされていない場合は、Docker-CEリポジトリをシステムに追加する必要があります。次のコマンドで追加できます:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
リポジトリが追加されたら、次のコマンドを使用して最新バージョンのDockerをインストールします。
dnf install docker-ce --nobest -y
systemctl start docker
systemctl enable docker
次のコマンドを使用して、Dockerのバージョンを確認できます。
docker --version
次の出力が表示されます。
Docker version 19.03.5, build 633a0ea
DockerComposeをインストールする
デフォルトでは、DockerComposeはCentOS8のデフォルトリポジトリでは使用できません。そのため、Gitリポジトリからダウンロードする必要があります。
まず、次のコマンドを使用してcurlコマンドをインストールします。
dnf install curl -y
次に、以下に示すように、curlを使用してGitリポジトリから最新バージョンのDockerComposeをダウンロードします。
curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
ダウンロードが完了したら、次のコマンドを使用して、ダウンロードしたバイナリファイルを実行可能にします。
chmod +x /usr/local/bin/docker-compose
次に、次のコマンドを使用して作成バージョンを確認できます。
docker-compose --version
次の出力が表示されます。
docker-compose version 1.25.0, build 0a186604
次のコマンドを使用して、docker-composeで使用可能なすべてのオプションを確認できます。
docker-compose --help
次のページが表示されます:
DockerComposeを使用してDrupalをデプロイする
このセクションでは、DockerComposeを使用してDrupalをインストールする方法を示します。
まず、次のコマンドを使用してdrupalのディレクトリを作成します。
mkdir drupal
次に、drupalディレクトリ内にdrupal.yamlファイルを作成します:
nano drupal/docker-compose.yaml
次のコンテンツを追加します:
version: '3.3' services: drupal: image: drupal:latest ports: - 80:80 volumes: - drupal_modules:/var/www/html/modules - drupal_profiles:/var/www/html/profiles - drupal_themes:/var/www/html/themes - drupal_sites:/var/www/html/sites restart: always postgres: image: postgres:10 environment: POSTGRES_PASSWORD: your_postgres_password volumes: - db_data:/var/lib/postgresql/data restart: always volumes: drupal_modules: drupal_profiles: drupal_themes: drupal_sites: db_data:
終了したら、ファイルを保存して閉じます。次に、ディレクトリをdrupalに変更し、次のコマンドを使用してDockerコンテナを起動します。
cd drupal
docker-compose up -d
上記のコマンドは、drupalおよびpostgresqlコンテナーをダウンロードして実行します。
次のコマンドを使用して、実行中のコンテナを確認できます。
docker-compose ps
次の出力が表示されます。
Name Command State Ports ------------------------------------------------------------------------------- drupal_drupal_1 docker-php-entrypoint apac ... Up 0.0.0.0:80->80/tcp drupal_postgres_1 docker-entrypoint.sh postgres Up 5432/tcp
これで、URL http:// your-server-ipにアクセスして、以下に示すようにDrupalWebインストールウィザードにアクセスできます。
DockerComposeの操作
このセクションでは、docker-composeコマンドの使用方法を説明します。
Docker Composeサービスを停止するには、drupalディレクトリ内で次のコマンドを実行します。
docker-compose stop
次の出力が表示されます。
Stopping drupal_drupal_1 ... done Stopping drupal_postgres_1 ... done
Docker Composeサービスを開始するには、drupalディレクトリ内で次のコマンドを実行します。
docker-compose start
コンテナのログを表示するには、次のコマンドを実行します。
docker-compose logs
特定のコンテナのログを表示するには、次のコマンドを実行します。
docker-compose logs drupal
次のコマンドを使用して、構成ファイルを表示できます。
docker-compose config
コンテナを一時停止および一時停止解除するには、次のコマンドを実行します。
docker-compose pause
出力:
Pausing drupal_postgres_1 ... done Pausing drupal_drupal_1 ... done
docker-compose unpause
出力:
Unpausing drupal_drupal_1 ... done Unpausing drupal_postgres_1 ... done
すべてのコンテナを削除するには、次のコマンドを実行します。
docker-compose down
次の出力が表示されます。
Stopping drupal_drupal_1 ... done Stopping drupal_postgres_1 ... done Removing drupal_drupal_1 ... done Removing drupal_postgres_1 ... done Removing network drupal_default
次のコマンドを使用してデータボリュームを削除することもできます:
docker-compose down --volumes
次の出力が表示されます。
Removing network drupal_default WARNING: Network drupal_default not found. Removing volume drupal_drupal_modules Removing volume drupal_drupal_profiles Removing volume drupal_drupal_themes Removing volume drupal_drupal_sites Removing volume drupal_db_data
上記のチュートリアルでは、CentOS8にDockerComposeをインストールして使用する方法を学びました。DockerComposeコマンドを使用してDockerコンテナを管理する方法について十分な知識があることを願っています。