Dockerを使うのに慣れてきて、複数のコンテナを扱うようになった際によく使われるのが「docker compose up」です。しかしdocker compose upは便利な反面、正しく理解して使われず、ユーザーが操作に迷うケースも少なくありません。
この記事ではDocker Composeとは何かといった基本から、docker compose upの使い方について解説しています。その上で、docker compose upと混同しやすいコマンドとの違いについても解説するのであわせて参考にして下さい。
目次
そもそもDocker Composeとは?
Docker Composeとは、複数のコンテナを一括で効率的に操作できるツールです。Docker Composeでは、あらかじめ用意した定義ファイル(compose.yml)に従い、複数のコンテナを一括で作成・起動します。
Docker だけでは、1度に1つずつのコンテナしか操作できません。そのため複数コンテナを操作する必要がある場合は、操作が煩雑になったり手間がかかったりします。
Docker Composeを使えば、複数コンテナの操作がシンプルに行えるようになる上、負担も軽減できるのです。操作が煩雑になるのを回避できることから、ミス軽減にも役立ちます。
※Docker Composeの詳細やインストール方法については、以下記事で解説しています。
興味があればあわせてご覧ください。
【入門】Docker Composeとは?インストールと使い方
Docker Composeは、Dockerを日常的によく使う人程役立つツールです。多くのDockerコンテナを操作する必要があるケースでは、Docker Composeを使うことで作業の負担が大幅に軽減されます。一方で、Docker Composeとは何かや使い方について知らない方も多いのではないでしょうか。 この記事ではDocker Composeの概要と、インスト―ル方法を解説しています。そ…
docker compose upコマンドとは?【複数コンテナの一括作成/起動】
docker compose upコマンドは、Docker Composeによって実行可能なコマンドの1つです。docker compose upコマンドを使うと、複数コンテナを一括で作成・起動できます。
Dockerの標準的なコマンドでは、1度に1つのコンテナしか作成・起動できません。一方でdocker compose upを使えば、複数コンテナを作成・起動するのに1つのコマンドですむわけです。
※docker compose upを行うと、以下のようにDockerコンテナが作成され起動します。
docker compose upコマンドの使い方
docker compose upコマンドの書式は以下の通りです。
docker compose up [OPTIONS] [SERVICE…]
以下のようにオプションやサービス名を何も指定しない場合は、docker compose.ymlで定義したサービス(services)を全て実行します。
docker compose up
特定のサービスを指定する場合は、以下のようなコマンドを実行します。
docker compose up mysql
これによって対象となるコンテナ(1つ、もしくは複数)が起動状態となるのです。
主なオプション
Docker compose upは、オプションを使って応用的な処理を行うことも可能です。ここでは、なかでも特によく使われる主なオプションを紹介します。
「-d」| バックグラウンドで実行する
「-d」オプションを利用すると、サービスがバックグラウンドで実行されます。使用例は以下の通りです。
docker compose up -d
「–build」| イメージを再構築する
「–build」オプションを利用すると、Dockerイメージが再構築されます。使用例は以下の通りです。
docker compose up --build
※dockerfileを編集したあとに、「–build」を追加せず「docker compose up」コマンドを実行しても、dockerfileの編集内容が反映されません。dockerfile編集後にその内容を反映させたい場合は、「–build」を追加する必要があります。
docker compose “up”と”build”・”run”・”start”の違い
docker composeのコマンドのなかでも、”up”と”build”・”run”・”start”はいずれもDockerイメージやDockerコンテナの構築・起動に関わるオプションです。その一方で、これらオプションの明確な違いを理解されていない方も多いのではないでしょうか。
ここでは、これらコマンドの概要と違いについて解説します。まず、それぞれのコマンドの概要は以下の通りです。
【docker compose “up”と”build”・”run”・”start”それぞれの概要】
種類 | 概要 |
---|---|
up | Dockerイメージの作成からコンテナの作成、起動まで行うコマンドです。 ただしコンテナが作成済の場合、Dockerfileが変更されてもDockerイメージの再作成は行われません。 ※「–build」オプションを追加することでイメージが再構築されます。 |
build | Dockerイメージを作成(build)するコマンドです。 |
run | Dockerイメージの作成からコンテナの作成、起動まで行うコマンドです。 ただし1つのサービスに対して、1度に1つのコマンドのみ実行されます。 |
start | 既に作成済のDockerコンテナを起動するコマンドです。 |
各コマンドの動作の違いについて、表にまとめると以下のようになります。
Dockerイメージの構築 | Dockerコンテナの構築 | Dockerコンテナの起動 | |
---|---|---|---|
up | △※1 | 〇 | 〇 |
build | 〇 | × | × |
run | △※2 | △※2 | △※2 |
start | × | × | 〇 |
※1)Dockerコンテナが作成済の場合、再構築するためには「–build」オプションの追加が必要
※2)1つのサービスに対して1つずつのコマンドしか実行されない(「up」のように複数のコマンドが実行されることはない)
まとめ
Docker Composeは複数のコンテナを効率的に操作できるツールです。
また、そのDocker Composeに含まれる「docker compose up」コマンドを使うと、あらかじめ定義したDockerコンテナを一括で作成・起動できます。
Docker Composeでは、コンテナの作成や起動に関わるコマンドが複数ありますが、複数コンテナの作成・起動を同時に行うのはdocker compose upのみです。
開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS
カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。