DockerはLinksというコンテナ間のネットワークを繋ぐ仕組みを持つ。
例えば、アプリケーションコンテナとデータベースコンテナを連携して使いたいときに有用だ。
今回はMySQLとPHPのコンテナを連携させる方法を紹介する。
MySQLコンテナの作成
まずは、mysqlコンテナを作成する。
バックグラウンドで起動させるための --detachオプションと3306ポートを解放するための exposeオプションを指定している。
1 | $ docker run --detach --expose=3306 --name=test-mysql --env="MYSQL_ROOT_PASSWORD=mypassword" mysql |
以下のようにコンテナが起動していることを確認できるはずだ。
1 | ⇒ docker ps |
PHPコンテナの作成
次にPHPコンテナを作成する。
以下のDockerfileと確認用のconnect.phpを用意しておく。
Dockerfile
1 | FROM php:7.1 |
connect.php
1 |
|
ビルドする。
1 | $ docker build -t mysql-php . |
以下のように --link 連携したいコンテナ名:エイリアス名 でPHPコンテナを起動すると、起動したコンテナの環境変数に連携したいコンテナに関する情報が登録される。
1 | $ docker run -it --link test-mysql:mysql mysql-php bash |
最後にPHPのコンテナでconnect.phpを実行して接続できることを確認してみる。
version名が表示されれば成功だ。
1 | # php /app/connect.php |
