このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Docker入門】Docker Composeを使ってみる②

Docker Composeを使ってみる①」の続きです。

「Docker Composeを使ってみる」は、2部に分けて解説しています。

手順3:コマンドを使ってコンテナの作成・実行する。

 「compose.yaml」の準備ができたら、コンテナを作成して実行します。「docker compose up」コマンドを使います。

 「docker compose up」コマンドを使用してコンテナを作成および実行する際、オプションとして「-d」を指定することで、コンテナをデタッチドモードで実行します。オプションの効果について解説します。

「-d」オプションを指定しないと

 デタッチモード(バックグラウンド)でコンテナを実行するため、端末がブロックされずに他の操作を行うことができます。このオプションを指定しない場合、コンテナはフォアグラウンド(対話的モード)で実行され、そのターミナルがコンテナの出力を表示し続けます。これにより、コンテナのログをリアルタイムで確認できますが、ターミナルがコンテナに「アタッチ」され、他の操作を行うことができなくなります。

エラーが起こった場合に表示されるメッセージ

 「docker compose up」コマンドがエラーに遭遇した場合、エラーメッセージが表示されます。エラーメッセージは、問題の原因を特定し、解決策を見つけるのに役立ちます。エラーメッセージには、問題の種類や発生した場所などの情報が含まれることが一般的です。エラーが表示された場合は、それに従って問題を解決する必要があります。例えば、イメージが見つからない場合やポートが既に使用されている場合など、さまざまな原因が考えられます。

まず、タイプミスや半角スペースの過不足がないかを確認しましょう。

 正常に実行された場合は、コンテナがバックグラウンドで実行されるため、そのコンテナのログは表示されず、ターミナルは即座にプロンプトに戻ります。この場合、コンテナの状態やログを確認するには、別途「docker compose logs」コマンドを使用する必要があります。

・「docker compose up -d」コマンドを実行します。

このコマンドは、「compose.yaml」ファイルを配置した場所で実行します。

PS C:\Users\joeac\Desktop\docker\apache> docker compose up -d
[+] Running 7/7
 ✔ apache 6 layers [⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                 7.3s
   ✔ 8a1e25ce7c4f Pull complete                                                                                    1.3s
   ✔ 8b0a7c8478f8 Pull complete                                                                                    0.8s
   ✔ 4f4fb700ef54 Pull complete                                                                                    0.8s
   ✔ 7f8fb0a042e0 Pull complete                                                                                    1.7s
   ✔ 91e4b2f2b52a Pull complete                                                                                    2.2s
   ✔ c78cdbf9617d Pull complete                                                                                    3.4s
[+] Building 0.0s (0/0)                                                                                  docker:default
[+] Running 2/2
 ✔ Network apache_default     Created                                                                              0.0s
 ✔ Container apache-apache-1  Started                                                                              0.2s
PS C:\Users\joeac\Desktop\docker\apache>

作成されたコンテナの確認

・「docker container ls -a」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker\apache> docker container ls -a
CONTAINER ID   IMAGE       COMMAND              CREATED          STATUS          PORTS                NAMES
0df027d82960   httpd:2.4   "httpd-foreground"   10 minutes ago   Up 10 minutes   0.0.0.0:80->80/tcp   apache-apache-1

 「docker container ls -a」コマンドは、Dockerホスト上のすべてのコンテナの一覧を表示します。表示される項目とその意味を表にまとめます。

項目意味
CONTAINER IDコンテナの一意の識別子。
IMAGEコンテナが使用しているDockerイメージの名前またはID。
COMMANDコンテナが起動される際に実行されるコマンド。
CREATEDコンテナが作成された日時。
STATUSコンテナの状態。
PORTSコンテナが公開しているポートと、それらがホストにマッピングされたポート。
NAMESコンテナに割り当てられた名前。
「docker container ls -a」コマン

 これらの項目は、Dockerコンテナの情報を示しており、各コンテナの状態や実行中のプロセス、使用されているイメージなどを確認するのに役立ちます。

Webブラウザで確認

・Webブラウザを起動して、URLに「localhost」と入力します。

Apacheの初期ホームページが表示されます。

コンテナの停止

・「docker container stop apache-apache-1」コマンドを実行します。

 コンテナ名「apache-apache-1」は、実行環境で異なる場合があります。適時、置き換えてコマンドを実行します。

※「docker compose stop」コマンドでもコンテナを停止させることができます。

PS C:\Users\joeac\Desktop\docker\apache> docker container stop apache-apache-1
apache-apache-1

不要なコンテナは停止する。

 不要なコンテナは停止させます。起動しているコンテナが多い場合、それらがシステムリソース(CPU、メモリ、ディスクスペースなど)を占有し、パフォーマンスに影響を与える可能性があります。特に大規模なアプリケーションやサービスを実行している場合、その影響は顕著になります。

「Docker Composeを使ってみる」は、2部に分けて解説してきましたが、これで解説は終わりです。

関連コンテンツ