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

【Docker基礎】コンテナを作成・起動・確認・停止・削除してみる

コンテナを作成・起動・確認・停止・削除してみる

 ここでは、Dockerを使用してApacheコンテナの基本操作(作成、起動、確認、停止、削除)を実践的に学びます。Apache(httpd)は、多くのWebサイトで利用されているWebサーバソフトウェアです。以下の手順に従って、コンテナのライフサイクルを体験してみましょう。

コンテナの基本情報

今回作成するコンテナの詳細は以下の通りです。

項目
コンテナ名ApacheServer
イメージ名httpd
ポート設定ホストの8080番ポートをコンテナの80番ポートにマッピング

使用するコマンドの概要

以下に、使用する主なDockerコマンドとその説明をまとめます。

コマンド説明
docker run新しいコンテナを作成して起動する。
docker ps現在稼働中のコンテナの一覧を表示する。
docker ps -aすべてのコンテナ(停止中も含む)の一覧を表示する。
docker stop指定したコンテナを停止する。
docker rm指定したコンテナを削除する。

各コマンドの詳細

1.docker run

新しいコンテナを作成して起動します。主なオプションは以下の通りです。

オプション説明
--name ApacheServerコンテナに「ApacheServer」という名前を付けて作成します。
-dコンテナをバックグラウンド(デタッチドモード)で実行します。
-p 8080:80ホストのポート8080をコンテナのポート80にマッピングします。
httpd使用するイメージ名。バージョンを指定しないため、デフォルトで最新バージョンが使用されます。

2.docker ps

現在稼働中のコンテナ一覧を表示します。

3.docker ps -a

すべてのコンテナ(稼働中および停止中)を表示します。

4.docker stop

指定したコンテナを停止します。

5.docker rm

指定したコンテナを削除します。

コンテナの作成から削除までの実践

以下の手順に従って、Apacheコンテナの作成から削除までを実践してみましょう。

Step1:「run」コマンドを実行する

 まず、Apacheの公式イメージ(httpd)を使用して「ApacheServer」という名前のコンテナを作成・起動します。初回実行時はイメージのダウンロードが行われるため、時間がかかる場合があります。実行結果に表示される数字列は、環境により異なるイメージIDやコンテナIDです。

コマンドの実行

PowerShellまたはターミナルに以下のコマンドを入力します。

docker run --name ApacheServer -d -p 8080:80 httpd

コマンドの解説

  • docker run: 新しいコンテナを作成して起動します。
  • --name ApacheServer: コンテナに「ApacheServer」という名前を付けます。
  • -d: コンテナをバックグラウンドで実行します。
  • -p 8080:80: ホストのポート8080をコンテナのポート80にマッピングします。
  • httpd: 使用するイメージ名(Apacheの公式イメージ)。

実行結果

PS C:\Users\joeac> docker run --name ApacheServer -d -p 8080:80 httpd
Unable to find image 'httpd:latest' locally
latest: Pulling from library/httpd
fd674058ff8f: Pull complete
8c3081b233c7: Pull complete
4f4fb700ef54: Pull complete
172b239db5c2: Pull complete
bbff13f6be42: Pull complete
d7382fd3e491: Pull complete
Digest: sha256:72f6e24600718dddef131de7cb5b31496b05c5af41e9db8707df371859a350bb
Status: Downloaded newer image for httpd:latest
a14fcfc45d85bd711eec6621aacd5d5fb5ac1e35383061c55d3d8b1c03903a53

注意点

  • Unable to find image 'httpd:latest' locally: ローカルにhttpdイメージが存在しないため、Docker Hubからダウンロードします。
  • 最後の文字列(例: a14fcfc45d85...)はコンテナIDで、環境によって異なります。

Step2:「ps」コマンドでコンテナの稼働を確認する

作成・起動したコンテナが正しく稼働しているか確認します。

コマンドの実行

docker ps

実行結果

PS C:\Users\joeac> docker ps
CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS          PORTS                  NAMES
a14fcfc45d85   httpd     "httpd-foreground"   28 seconds ago   Up 28 seconds   0.0.0.0:8080->80/tcp   ApacheServer

確認ポイント

  • NAMES列に「ApacheServer」と表示されている。
  • STATUSが「Up」であること。
  • PORTS0.0.0.0:8080->80/tcpと表示され、ホストの8080番ポートがコンテナの80番ポートにマッピングされている。

Step3:ブラウザでApacheServerコンテナが動作していることを確認する

ブラウザを開き、以下のURLにアクセスします。

http://localhost:8080/

注意点

  • プロトコルはhttpを使用します(httpsではありません)。
  • 正常に動作していれば、Apacheのデフォルトページが表示されます。

Step4:「stop」コマンドでコンテナを停止する

コンテナの動作を停止します。

コマンドの実行

docker stop ApacheServer

実行結果

PS C:\Users\joeac> docker stop ApacheServer
ApacheServer

解説

  • コンテナ名「ApacheServer」が停止されたことを示します。

Step5:「ps」コマンドでコンテナの停止を確認する

停止したコンテナが一覧に表示されていないことを確認します。

コマンドの実行

docker ps

実行結果

PS C:\Users\joeac> docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

確認ポイント

  • 「ApacheServer」が一覧に表示されていないこと。

Step6:「ps -a」コマンドでコンテナの存在を確認する

停止中のコンテナも含めて、コンテナの存在を確認します。

コマンドの実行

docker ps -a

実行結果

PS C:\Users\joeac> docker ps -a
CONTAINER ID   IMAGE         COMMAND              CREATED         STATUS                     PORTS     NAMES
a14fcfc45d85   httpd         "httpd-foreground"   9 minutes ago   Exited (0) 4 minutes ago             ApacheServer
1024ef450a12   hello-world   "/hello"             46 hours ago    Exited (0) 2 hours ago               frosty_sinoussi

確認ポイント

  • 「ApacheServer」のSTATUSが「Exited」となっていること。

Step7:「rm」コマンドでコンテナを削除する

不要になったコンテナを削除します。

コマンドの実行

docker rm ApacheServer

実行結果

PS C:\Users\joeac> docker rm ApacheServer
ApacheServer

解説

  • コンテナ名「ApacheServer」が削除されたことを示します。

Step8:「ps -a」コマンドでコンテナの削除を確認する

コンテナが正しく削除されたか確認します。

コマンドの実行

docker ps -a

実行結果

PS C:\Users\joeac> docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED        STATUS                   PORTS     NAMES
1024ef450a12   hello-world   "/hello"   46 hours ago   Exited (0) 2 hours ago             frosty_sinoussi

確認ポイント

  • 「ApacheServer」が一覧に表示されていないこと。

まとめ

 ここでは、Dockerを使用してApacheコンテナを作成・起動し、その稼働状況を確認、停止、削除する一連の流れを実践しました。以下のポイントを押さえておきましょう。

  • コンテナの作成・起動: docker runコマンドを使用し、必要なオプション(名前指定、ポートマッピング、バックグラウンド実行)を設定します。
  • コンテナの確認: docker psおよびdocker ps -aコマンドで、コンテナの稼働状況や存在を確認します。
  • コンテナの停止: docker stopコマンドで、稼働中のコンテナを安全に停止します。
  • コンテナの削除: docker rmコマンドで、不要になったコンテナを削除します。

 初めてDockerを操作する方は、コマンドプロンプトやターミナルでの操作に慣れるため、これらの手順を何度か繰り返してみてください。また、カーソルキーの「↑」や「↓」を使って過去のコマンドを呼び出し、再実行する方法も習得すると、効率的に作業が進められます。