Docker 入門(2)
Docker Compose
・Docker-compose.ymlファイルで複数のコンテナを一気に管理(定義)できる
・環境変数、ポート番号などこのDocker-compose.yml内で定義出来る
・複数のコンテナが自動で同じネットワークに繋がる(めっちゃ楽!)
Docker Composeの見本
version: “3”
services:
reverse-proxy:
image: nginx
volumes:
./config:/etc/nginx/nginx.conf.d
ports:
“80:80”
restart: always
web-server:
image: nginx
volumes:
./docs:/usr/share/nginx/html
※二つのコンテナ(ここではnginxが二つ)を管理。reverse-proxy,web-serverといった具合に同じnginxでも
名前解決できる。
※二つのコンテナは同じネットワークに繋がる。
・version => docker-compose.ymlの書式のバージョン
・services => この中にコンテナ(複数)を記述する
・reverse-proxy,web-server => コンテナ名
・image => 使いたいイメージ
・volumes => イメージのマウント先
・restart: always => Dockerデーモンが立ち上がった時には自動で起動されると言う意味
※docker run コマンドのオプションをymlファイルの中に記述する感じ
Dockerコマンド
・$ docker ps
=> 現在立っているコンテナが表示される
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1fe2d5b1d4dc rails_web "bundle exec rails s…" 4 weeks ago Up 4 weeks 0.0.0.0:3000->3000/tcp rails_web_1
c4caa0dcfef7 mysql:5.7 "docker-entrypoint.s…" 4 weeks ago Up 4 weeks 3306/tcp, 33060/tcp rails_db_1
オプション
・ -a : 現在立っている、いないに関わらず全てのコンテナを表示する
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1fe2d5b1d4dc rails_web "bundle exec rails s…" 4 weeks ago Up 4 weeks 0.0.0.0:3000->3000/tcp rails_web_1
c4caa0dcfef7 mysql:5.7 "docker-entrypoint.s…" 4 weeks ago Up 4 weeks 3306/tcp, 33060/tcp rails_db_1
05a5015ccaab hello-world "/hello" 7 weeks ago Exited (0) 7 weeks ago charming_austin
56692f71fe8c hello-world "/hello" 7 weeks ago Exited (0) 7 weeks ago silly_montalcini