Points & Lines

【補足記事】【Docker入門 】⑤ Docker Composeの基本

Docker Compose入門 補足事項

【Docker入門 】⑤ 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のディレクトリ名_サービス名_番号

Follow me!

モバイルバージョンを終了