– Docker Compose: Dockerイメージのビルドや各コンテナの起動・停止をより簡単に行えるようにするツール
– Dockerビルドやコンテナ起動のオプションなどを含め、複数のコンテナの定義をymlファイルに書き、それを利用してDockerビルドやコンテナ起動をする
### Docker Composer install
$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose –version
docker-compose version 1.21.2, build a133471
docker-compose.ymlが必要になる
– Dockerイメージをビルドするための情報
– コンテナ起動するための情報
– 使用するDockerネットワーク
docker-compose.yml
version: '3'
services:
wordpress:
image: wordpress
container_name: some-wordpress
restart: unless-stopped
ports:
- 8080:80
environment:
WORDPRESS_DB_PASSWORD: my-secret-pw
mysql:
image: mysql:5.7
container_name: some-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
ports:
- "3306:3306"
docker-composeを使用すると、自動でDockerネットワークを作成する
### docker-compose.ymlの起動
$ sudo docker-compose up -d
//停止
$ sudo docker-compose stop
$ sudo docker exec -it 5d7 bash
$ cat wp-config.php
$ sudo docker exec -it b1f bash
# mysql -u root -p
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
あれ、MySQLにログインできない
https://github.com/docker-library/mysql/issues/180
Are you mapping to an existing database or creating a new one? The root password variable will only be used when creating a database. It won't change the root password of an existing one.
docker stop, docker rmして、再度docker-compose up -d
http://192.168.33.10:8080/

docker-composeとコンテナ間通信の仕組みが分かりました。