0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

docker-composeの扱いに初心者なりに慣れてきたので、コマンドの雰囲気を絵にして残すことにした

Last updated at Posted at 2025-12-12

何の記事?

この記事は鎮宮'sアドベントカレンダー2025の12日目の記事です。
この記事では、ただの最初の環境構築用としてDocker使ってるよー……から教わった中で、割とDockerと仲良くなってきて日常的に使うコマンドが固定化されてきたので、まとめようと書きました。

誰向け? どんな役にたつ?

  • Dockerを使っていて、コマンドを色々入力しながら使っている人
  • DockerDesktopなどのGUIでコンテナを操作しているが、CLIでcomposeしたコンテナを操作したい人
  • ぶっちゃけ、毎日のようにコマンドを使っていても忘れてしまうので、どこかのまとめを頼っている人

あらすじ

業務でDockerを使っているのですが、開発するアプリケーションの練習兼開発環境としてDockerで構築してるよー……というていだったところ、Docker環境を5回壊したあたりでDocker慣れしてきたので、未来のど忘れした自分宛もかねて、日常的に使うコマンドをまとめてみることにしました。
まとめると覚えられる部分もあるし!

そもそもDockerって何?……という人向け

私もDocker使うんだ……ん、確か湊川さんのわかばちゃんと学ぶシリーズがあったよな……?とこちらを読んで、Dockerの雰囲気を掴むことができました。
これを読んで、色々なイメージからコンテナを作って遊んでみると理解が早いかと思います。
初手は1巻だけでもいいのですが、2巻まで読むと「コンテナの中で開発するのってどうする?」……など、少し詳しい話が出てきます。気になった方はぜひ!

Dockerに慣れてくると、用意された安定した環境を構築でき、その中で開発できるというDockerの楽しさがわかってくるかと思います。
何より、開発環境壊しちゃっても「まぁ、また立てればいいや」と思える心理的安全性がとても良い……。

複数コンテナ(composeされたもの)を同時起動するとき

docker用ディレクトリにある複数コンテナ──例えば、webアプリとデータベースのコンテナを2つ同時に立ち上げる場合は、docker-composeのコマンドを使います。
別途docker-compose.ymlにどんな順番で、どんなコンテナをどう起動するかなどを書く必要はあるのですが、今回はすでにそういった設定がされている想定で書いていきます。
これってどんな時に使うっけ?……想定なので、コンテナさんに命令するイメージで進めます。

コンテナさん達、起きて!

docker-compose upと入力すると、docker-compose.ymlに書かれたコンテナが起動します。

なお、docker-compose up -dとオプションをつけると、CLIでコンテナを起動した後もコマンド入力ができます。
-dナシでdocker-compose upと入力した場合は、コンテナ内のアプリケーションを動かすたびにdockerのログがCLIに流れてくる他、Ctrl+Cでコンテナを停止することができます。

私は、コンテナを立ち上げた後もVimで編集機会がある場合は-dのオプションをつけて立ち上げています。webアプリ等を触るだけであれば、オプションなしで立ち上げて、dockerのログが確認できる状態で使っています。
自分のしたいことによって使い分けると便利です。

コンテナさん、その名前タイプし辛いから今度からこの名前でお願い!

コンテナ名はdocker rename 古いコンテナ名 新しいコンテナ名で変更できます。

後述するコンテナの中に入って、仮想環境のファイルを編集したい時などにコンテナ名を指定してコマンドを入力します。
その為、コンテナの名前が入力しにくい文字列だとコンテナに入るだけでも一苦労になります。
コンテナの内容がわかる程度に短い名前に変更しておくと、コマンド入力の際に便利です。

コンテナさん、ごめんくださいー

コンテナの中に入るのはdocker exec -it コンテナ名 bashでできます。

コンテナ内のファイルは通常、コンテナの外側──普段の環境からは見えないし、触れません。仮装環境なので。
コンテナ起動中、仮想上にファイルが存在していても、普段のローカル環境からは切り離されています。
そのため、開発中の環境内にあるファイルを編集したい時は、コンテナの中に入る必要があります。

コンテナさん、お邪魔しましたー

コンテナの外に戻りたい時にはexitで抜けられます。

コンテナさん、休憩行ってきていいよー

docker-compose stopと打つと、composeで複数立ち上がっていたコンテナが全て停止します。

コンテナを指定しなくても、composeで立ち上げたコンテナは1コマンドで起動/停止ができるので楽ちんです。

その他、コンテナに変化があった時に使うコマンド

コンテナさん、休憩終わり!また動いて!

docker-compose restartでコンテナの再起動ができます。
既にcompose up済で、再起動したい時はrestartすると、既にビルド済の情報でサッと立ち上がってくれます。

コンテナさんさよなら……

docker-compose rmと打つと、composeで作られていて、停止しているコンテナを削除することができます。

ちなみに、コンテナ内のファイルをローカルと繋げている──マウントしていた場合のボリュームが存在する場合、このコマンドだけでは消えません。
そのため、コンテナに問題が起きて、一度ボリュームも含めて削除したい場合にはdocker-compose -vとボリュームも含めて削除!……と指定してあげましょう。

コンテナさん、久しぶり!

上記のコマンドでコンテナを削除しても、docker-compose.ymlがあるディレクトリで再度docker-compose upすると、ymlファイルに沿ってコンテナを再建築してくれます。
ちなみにこの再建築、ボリュームを削除せずにコンテナの他データのみを削除した場合はボリュームを再利用します。

ボリューム以外でも、compose予定のファイルが既に存在する場合はそのまま生かして再利用し、ないものは再建築する……という動きをします。
なので、コンテナの環境に何か問題が生じた時、全削除して更地に再建築ではなく、生きていそうなデータは残して、問題が生じていそうなものを削除、再構築するとスムーズに再建築することができます。

コンテナさん、設定変更したからよく見て再建築お願い!

docker-compose.ymlや、composeファイルが読み込むDockerfileの内容を変更した時はdocker-compose up --buildして立ち上げます。docker-compose updocker-compose restartでは、コンテナを構成するファイルが変更しようとも、すでに出来上がっているコンテナをまた立ち上げる為、変更が反映されないことがあります。

Docker-composeは便利だけど、最初は戸惑う

Dockerそのものが仮想環境を構築でき、PC毎の環境に依存せず同じ環境をパッと構築できるので便利なのですが、このcomposeという複数コンテナを同時に起動したり停止したりできる仕組みが本当にすごいなと感じています。
とはいえ、コンテナを起動している時のみ仮想環境が起動し、停止すると跡形もない……と言うのは最初はなかなか慣れませんでした。
今でも色々と調べながら、Qiitaに記事をあげてくれている人に助けられながら触っている部分があります。

とはいえ、「こういうことかな?」が分かればなかなか便利で力になってくれる子なので、この記事で私のような初学者さんに、少しでもコマンドのイメージが伝われば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?