はじめに
先日「docker-composeで起動したコンテナ名を変えることができるのか?」という質問がありました。
私は組み込み系の開発が長かったので、Docker、DockerCompose歴は浅く、即答できずちょっと調べてみました。
ご存知の方は「そんなの簡単じゃん」と思われるかと思いますが、ここは私のお勉強にお付き合いいただけると・・・
名前はそのままでコンテナ起動
docker-composeを使用すると、特にコンテナ名を指定しない限り、自動的に名前が付与されます。
最初は、コンテナ名は特に気にせずにコンテナを起動してみようと思います。
今回は例として、あるアプリの「backend」とデータベース用の「backend-db」のコンテナを起動します。
1 |
docker-compose up -d |
※「-d」はバックグラウンドで実行するオプション
ここでログを確認してみます。バックグラウンドで起動してるので、以下のコマンドでログを確認します。
1 |
docker-compose logs |
ログの抜粋になりますが
コンテナ名は赤枠で囲った「backend_1」と青枠で囲った「backend-db_1」となっているのがわかります。
docker-composeさんが気を利かせて、コンテナ名に色を付けてくれてますので区別はつくと思いますが、名前を設定してみたいと思います。
名前を設定してみる
コンテナ名を設定する場合、Dockerの公式ドキュメントには以下のように書かれています。
container_name
デフォルトで生成される名前の代わりに、カスタム・コンテナ名を指定します。
container_name: my-web-container
この「container_name: コンテナ名」をdocker-compose.yamlファイルに設定してあげれば良さそうです。
今回は以下のように名前を付けたいと思います。
※名前に特に意味はありません・・・
backend ⇒ Night
backend-db ⇒ Diver
docker-compose.yamlファイルの抜粋
1 2 3 4 5 6 7 8 9 10 11 |
services: backend: build: ./main image: backend container_name: Night (中略) backend-db: build: ./main/backend-db/ image: backend-db container_name: Diver (中略) |
5行目と10行目に「container_name」でコンテナ名を設定しています。
docker-compose.yamlファイルを保存して、コンテナを再起動、ログを確認してみます。
ログの抜粋
変更前のコンテナ名は「backend_1」と「backend-db_1」でしたが、赤枠と青枠がyamlファイルで設定した「Night」と「Diver」になってます。
複数のコンテナを起動するときは、サービス名やプロジェクト名などわかりやすい名前に変更すると見やすくなりますね。
私のお勉強にお付き合いいただき、ありがとうございました。m(_ _)m