– 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とコンテナ間通信の仕組みが分かりました。