docker-compose.ymlの使い方

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