Lab 1: コンテナの基本操作

このラボでは、Dockerコンテナの起動・停止・削除など基本的な操作を学びます。

1. docker run でコンテナを起動する

まず最もシンプルなコンテナを起動してみましょう。

hello-world コンテナ

docker run hello-world

このコマンドは以下の処理を行います:

  1. ローカルに hello-world イメージがなければDocker Hubからダウンロード
  2. イメージからコンテナを作成
  3. コンテナを起動してメッセージを表示
  4. コンテナが終了

nginx コンテナ(バックグラウンド起動)

# -d: バックグラウンドで実行(デタッチモード)
# --name: コンテナに名前をつける
# -p: ポートを公開 (ホスト側:コンテナ側)
docker run -d --name my-nginx -p 8080:80 nginx
💡 オプションの意味:
-d … バックグラウンド実行
--name my-nginx … コンテナに「my-nginx」という名前をつける
-p 8080:80 … ホストの8080番ポートをコンテナの80番ポートに転送

2. docker ps - 実行中のコンテナ一覧

# 実行中のコンテナを表示
docker ps

# 停止中を含む全コンテナを表示
docker ps -a

docker ps は現在動いているコンテナだけを表示します。-a をつけると停止したコンテナも含めてすべて表示されます。

3. docker stop / docker rm - コンテナの停止と削除

# コンテナを停止(コンテナ名またはIDを指定)
docker stop my-nginx

# 停止したコンテナを削除
docker rm my-nginx
💡 ヒント: docker rm -f my-nginx で実行中のコンテナを強制的に停止&削除できます。

4. docker logs - コンテナのログ確認

# コンテナのログを表示
docker logs my-nginx

# リアルタイムでログを追跡(Ctrl+C で終了)
docker logs -f my-nginx

Webサーバーへのアクセスログやエラーログを確認するときに使います。

5. docker exec - コンテナの中に入る

# コンテナ内でbashシェルを起動
docker exec -it my-nginx /bin/bash
💡 オプションの意味:
-i … 標準入力を開いたままにする(インタラクティブ)
-t … 疑似ターミナルを割り当てる
コンテナ内から抜けるには exit と入力します。
# コンテナ内で単一コマンドを実行することもできます
docker exec my-nginx cat /etc/nginx/nginx.conf

📝 練習問題

課題: nginxコンテナを起動して、ブラウザからアクセスしてみましょう。
  1. nginxコンテナを web-test という名前で起動し、ホストの8080番ポートに公開する
  2. ブラウザで http://localhost:8080 にアクセスして「Welcome to nginx!」が表示されることを確認
  3. docker logs web-test でアクセスログを確認
  4. docker exec -it web-test /bin/bash でコンテナに入り、ls /usr/share/nginx/html/ を実行
  5. コンテナを停止して削除する

解答例

# 1. コンテナを起動
docker run -d --name web-test -p 8080:80 nginx

# 2. ブラウザで http://localhost:8080 にアクセス

# 3. ログ確認
docker logs web-test

# 4. コンテナに入る
docker exec -it web-test /bin/bash
ls /usr/share/nginx/html/
exit

# 5. 停止して削除
docker stop web-test
docker rm web-test

次のラボへ → Lab 2: Dockerイメージのビルド