4
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SFC-RGAdvent Calendar 2019

Day 12

一般視聴者はdocker-compose upを完全に理解したい!!

Last updated at Posted at 2019-12-12

この記事はSFC-RG Advent Calendar 2019の12日目です。

対象読者

「docker-compose upってなんだよ?トレンドに取り残されたくねええ!!」という人々

トレンド入りしたっけ?

時代はdocker-compose up

昨日、あるツイートが投稿されました。

とりあえず見ればわかります。VTuberがDockerで動く時代が来たようです。

了解!docker-compose up!

で、そもそもdocker-copose upって何をするものなのよっていう疑問。お答えしましょう。

docker-composeとは

Dockerという、様々なソフトウェアを動作環境ごとパッケージングして、どんなパソコンでも手軽に動かせるようにした仕組みがあります。

docker-composeはそのDockerのパッケージを複数組み合わせて動かす時に使うものです。

ちなみにDockerのパッケージの事をイメージと呼びます。

docker-compose upが何してるのさ

docker-compose upはdocker-composeを使ってイメージを元にソフトウェアを動かす際に用いるコマンドです。雑に言えば起動コマンドです。

イメージを元に起動した物をコンテナと呼びます。イメージとコンテナの関係は金型と生成物の関係に似ていますね。

少しCUIに触れたことのある人「いや待てよ?docker-compose up以外に何か引数がないと、どんなイメージを元にコンテナを作ればいいのかわからないじゃないか!」

いい質問ですねぇ。実際、docker-composeを使う時は特に引数は指定しません。
なのにdocker-compose upだけで目的のコンテナ達が期待通りに動きます。

地獄からの使者、docker-compose.yml

docker-composeがどうやって起動するイメージを把握するのか。答えはdocker-composeを使うディレクトリにあります。

docker-compose upを使うと、使ったディレクトリにあるdocker-compose.ymlというファイルと、docker-compose.override.ymlという二つのファイルを(存在していれば)自動で読み取ります。

これらのファイルにどんなコンテナを動かせばいいのかが書いてあるという訳です。

優秀な点として、docker-compose.yml達にイメージの名前を書いておけば、例えイメージが手元になくても、イメージが必要になった段階で自動でダウンロートして来てくれます。

つまりdocker-compose.ymlさえ手に入れられれば、お手元のパソコンで希来里パイが動かせる。

あなたはn人目の希来里パイです

ここまで読んできた読者、鋭い人なら気づくかもしれません。

???「コンテナはイメージを元に起動するもの。つまりdocker-compose upをする度にそれまでの記憶を失って希来里パイが発生する?なにそれエモい。」

実際コンテナはデータの保存はしてくれません。イメージという金型を元に生み出される存在なので、docker-compose downという、作ったコンテナを削除するコマンドを実行すれば、彼女は電子の海に消えてしまいます……

そうは問屋がおろしません!!

Dockerはそういった点もきちんと考慮しています。コンテナはボリュームと言う、データを保管する為の場所を持てるようになっているのです。

このボリュームはどんなコンテナでも接続できるようになっているので、例えdocker-compose downによりコンテナが消えたとしても、新しく生まれたコンテナがボリュームに再び接続することで、保管した大切な記憶が無事、次の希来里パイに引き継がれるという訳です。「逆にエモいな?」

強引にまとめ

これで今日から君も「docker-compose up完全に理解した1」視聴者だ!!!

筆者「docker-compose upについて触れて欲しい機能、項目があればコメントいただければどんどん追記します。」

  1. "完全に理解した"とはチュートリアルを流し読みしたレベルなので多分名乗っていいはず。

4
9
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
4
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?