見出し画像

docker-composeでコンテナを立ち上げる時はcontainer_nameを指定した方が良い?

docker-compose.ymlでは明示的にコンテナ名を指定できるcontainer_nameが使用できます。

コンテナ名を指定した方が良いと感じた理由ですが、docker-compose upでコンテナを立ち上げる際、同じコンテナ名のコンテナは消えてしまうからです。

自分がやらかした例として、現状動いているコンテナ内からホスト側に送りたいファイルがあったとき、いきなり動いているコンテナを触りたくなかった為、同じサーバー内に別の検証用のコンテナを立ててオペレーションに問題がないか確認しました。
検証用コンテナの実行ディレクトリはskユーザーのホームディレクトリで行いました。

伝えやすくするために以下のように呼称します
現状動いているコンテナ
コンテナ名:コンテナA
ディレクトリ:/opt/docker/以下

検証用に立てた別コンテナ
コンテナ名:コンテナB
ディレクトリ:/home/sk/docker/以下

ここで普段dockerを使用されている方ならお分かりかと思いますが、/home/sk/dockerで、コンテナBを立ち上げた時、同名のコンテナが立ち上がるため、コンテナAは削除されます。
デフォルトでは docker-compose.yml を置いているフォルダ名が使用されます。

コンテナAのディレクトリでdocker-compose psコマンドを叩いてなにも表示されないときは一瞬血の気が引きました...

ぶっちゃけ本番環境で複数コンテナ立ち上げて検証するなんてことはなかなか無いケースだと思います。
もちろん外部に公開されているサービスではなく、社内でしか使わないサービス、かつ、まだ導入したてで全然使われてなかったので特に大ごとにはなりませんでしたが、今後はコンテナの取扱には注意したいと思います。(そもそも消えて困るデータは永続化しましょう...というお話ですがw)

もし同じホスト内で複数コンテナを立ち上げる可能性がある場合はcontainer_nameを指定し、運用したいと思います。

もしくはCOMPOSE_PROJECT_NAMEを指定するのが良いかもしれないですね。参考URL↓
https://qiita.com/okashoi/items/1ddf3724ad5c166e417b

dockerでの運用は難しいですね!


この記事が気に入ったらサポートをしてみませんか?