Dockerで複数のコンテナをまとめて処理する【docker-compose】

Dockerで複数のコンテナをまとめて処理したいときに便利なdocker-composeの紹介です。今回はWordpressとそれが使うDBの2つのコンテナをまとめて起動する例を見てみます。

操作手順

まずは操作手順だけ先に紹介し、その後各手順の説明をします。

作業フォルダの作成

何か適当な作業用フォルダを作成します。ここではC:¥docker¥testとします。

docker-compose.ymlの作成

作業フォルダにdocker-compose.ymlという名前でファイルを作り、以下の様に編集します。

.envファイルの作成

作業フォルダに.envという名前でファイルを作り、以下の様に編集します。

コンテナの起動

コマンドプロンプトを開いて作業フォルダへ移動し以下のコマンドを実行します。

c:\docker\test>docker-compose up -d

起動の確認

起動が終わったらブラウザでhttp://localhost:8080にアクセスしてみます。次のような画面が表示されたら成功です。

各手順の説明

それでは各操作の説明です。

docker-compose.ymlの説明

このymlファイルのバージョンです。あまり気にせず現時点では3でいいです。

version: '3'

コンテナを定義するブロックです。決め打ちです。

services:

作成するコンテナの名前です。

wordpress:

db:

コンテナ作成に使用するイメージファイルです。

image: wordpress

image: mysql:5.7

PCの再起動などでdockerのサービスが起動した時にコンテナを起動するようにする設定です。

restart: always

ホストのポートとコンテナのポートのマッピングです。この例ではホストの8080番ポートをコンテナの80番ポートにマッピングします。

- 8080:80

コンテナの環境変数の指定です。後ろに続く値が環境変数としてコンテナ上で利用できます。

environment:

どのコンテナに依存しているのかの指定です。この例ではWordpressはDBが起動していないと動かないのでDBに依存させています。

depends_on:

.envの説明

docker-composeを実行した時に自動で読み込んで環境変数として扱ってくれるようになるファイルです。docker-compose.yml内で${環境変数名}の様に指定して使います。環境変数が展開された後のymlファイルの内容を以下のコマンドで確認できます。

docker-compose config

docker-composeコマンドの説明

以下のコマンドでコンテナが起動しました。-dはデタッチのdでコンテナがバックグラウンドで実行されます。

c:\docker\test>docker-compose up -d

起動したコンテナは以下のコマンドで停止します。

c:\docker\test>docker-compose stop

作成したコンテナは以下のコマンドで削除します。

c:\docker\test>docker-compose down

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です