目次
Docker Compose入門 補足事項
Docker Composeの基本を紹介した以前の記事の補足事項をメモ。
環境: Docker version 20.10.7, docker-compose version 1.29.2
docker compose コンテナの操作
Composeコンテナへのログイン
サービス名を指定して起動中のComposeコンテナへログイン
docker-compose exec サービス名 bash
起動中の操作
コンテナ起動中でもビルド、起動コマンドの実行が出来る。
(再ビルド、再起動となる)
(コンテナ起動中の様子)
Name Command State Ports
---------------------------------------------------------------------------------------------------
mysql-compose-cont docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
php-apache-compose-cont docker-php-entrypoint apac ... Up 0.0.0.0:82->80/tcp,:::82->80/tcp
再ビルド
docker-compose build
再起動
docker-compose up -d
再ビルド & 再起動
docker-compose up -d --build
それぞれコマンドの後ろにサービス名を指定できる。(個別に操作)
docker-compose.yml
ymlファイル名を変更したい
ymlファイルを任意の名称にした場合、全てのdocker composeコマンド実行時にfオプションでファイルを指定する。
例)example.yml
docker-compose -f example.yml up -d --build
イメージ、コンテナのデフォルト名称
docker-compose.yml定義内※ image:イメージ、container_name:コンテナ の指定は必須ではない。
※ build: ありの場合
version: '3.8'
services:
mysql:
build: .
restart: always
environment:
MYSQL_DATABASE: testdb
MYSQL_USER: user1
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: password
volumes:
- ./db/sqls:/docker-entrypoint-initdb.d
指定しない場合にビルド、起動後に自動で付与される際の名称は、ymlが格納されたパスの名前を元に付けられる。
例)docker-compose.ymlの格納ディレクトリ名が mysqldb-compose
image: 指定なし (build: あり)
イメージ名 : mysqldb-compose_mysql
ymlのディレクトリ名_サービス名
container_name 指定なし
コンテナ名 : mysqldb-compose_mysql_1
ymlのディレクトリ名_サービス名_番号