レポート課題3(3日目):Docker環境の構築
本実験は1回分(4時限分 × 1)を想定している。
実験レポートのファイル名は T3情報工学3_[学生番号]_[氏名].pdf とすること。
【基礎知識】Dockerとコンテナ
Dockerは、アプリケーションの実行環境をコンテナとして分離し、同じ構成を再現しやすくする仕組みである。後続の実験でWeb UIやAI関連サービスを動かすため、事前にDockerをセットアップしておく。
1. 目的
Dockerをセットアップし、まず単体コンテナの実行を体験したうえで、docker compose による複数設定の管理方法を習得する。
作業区分ラベル
[Webブラウザ(Proxmox)]: Proxmoxの画面操作[Windows 11 ターミナル]: Windows 11 の PowerShell 操作[Windows 11 ターミナル(SSH接続)]: Windows 11 からSSH接続した Ubuntu Server 上のコマンド操作
コマンド表記ルール:
bashブロックは推奨手順(Windows Terminalでbash互換エイリアスが使える場合はこちらを優先)、powershellブロックはPowerShell固有記法の参考例。
2. 実験方法(使用機器と手順)
まず docker run で単体コンテナを実行し、その後で docker compose による構成管理を体験する。
2.1 Docker単体の基本操作を確認する
- [Windows 11 ターミナル(SSH接続)] Dockerのインストール
bash(推奨):
sudo apt update
sudo apt install -y docker.io docker-compose-v2
- [Windows 11 ターミナル(SSH接続)] Dockerサービスの有効化
bash(推奨):
sudo systemctl enable --now docker
sudo systemctl status docker
docker --version
- [Windows 11 ターミナル(SSH接続)] 単体コンテナの動作確認
bash(推奨):
sudo docker run --rm hello-world
- [Windows 11 ターミナル(SSH接続)] 起動中コンテナと取得済みイメージを確認する
bash(推奨):
sudo docker ps -a
sudo docker images
2.2 Docker Composeで構成管理を体験する
- [Windows 11 ターミナル(SSH接続)] Composeプラグインが利用できることを確認する
bash(推奨):
sudo docker compose version
- [Windows 11 ターミナル(SSH接続)]
docker composeの動作確認用ディレクトリを作成する
bash(推奨):
sudo mkdir -p /opt/compose-demo
cd /opt/compose-demo
- [Windows 11 ターミナル(SSH接続)]
compose.yamlを作成する
bash(推奨):
sudo nano /opt/compose-demo/compose.yaml
以下の内容を保存する。
services:
web:
image: traefik/whoami
container_name: compose-whoami
ports:
- "8080:80"
restart: unless-stopped
- [Windows 11 ターミナル(SSH接続)] Compose定義を検証して起動する
bash(推奨):
cd /opt/compose-demo
sudo docker compose config
sudo docker compose up -d
sudo docker compose ps
- [Windows 11 ターミナル(SSH接続)] 起動したコンテナを検証する
bash(推奨):
curl http://localhost:8080
sudo docker compose logs --tail 20
curl http://localhost:8080 の出力には、コンテナ名やIPアドレスなどの情報が表示される。応答本文が返ることを確認する。
- [Windows 11 ターミナル] クライアントから到達確認を行う
PowerShell(参考):
Test-NetConnection 192.168.100.xxx -Port 8080
-
[Windows 11 ターミナル] Webブラウザで
http://192.168.100.xxx:8080にアクセスし、whoamiコンテナの応答画面が表示されることを確認する -
[Windows 11 ターミナル(SSH接続)] Composeで起動したコンテナを停止・削除する
bash(推奨):
cd /opt/compose-demo
sudo docker compose down
sudo docker compose ps
3. 結果と考察
[Windows 11 ターミナル(SSH接続)] 確認コマンド:
bash(推奨):
docker --version
sudo systemctl status docker
sudo docker run --rm hello-world
sudo docker ps -a
sudo docker images
sudo docker compose version
cd /opt/compose-demo
sudo docker compose config
sudo docker compose up -d
sudo docker compose ps
curl http://localhost:8080
sudo docker compose logs --tail 20
sudo docker compose down
[Windows 11 ターミナル] 確認コマンド:
PowerShell(参考):
Test-NetConnection 192.168.100.xxx -Port 8080
📷 【エビデンス取得】 以下の6点をキャプチャし、図表のルールにしたがってレポートにまとめること。
docker --versionとsudo systemctl status dockerを実行し、Docker本体の導入とサービス起動が確認できる画面sudo docker run --rm hello-worldを実行し、単体コンテナが正常に起動・終了する画面sudo docker ps -aまたはsudo docker imagesを実行し、Dockerがコンテナやイメージを管理していることがわかる画面sudo docker compose versionを実行し、Composeプラグインが利用可能であることがわかる画面sudo docker compose configとsudo docker compose psを実行し、Compose定義が正しく解釈されて whoami コンテナが起動していることがわかる画面curl http://localhost:8080、Test-NetConnection 192.168.100.xxx -Port 8080、またはブラウザ表示を確認し、Composeで起動した whoami コンテナへサーバー側とクライアント側の両方からアクセスできることがわかる画面
4. 課題
- コンテナ型仮想化とハイパーバイザ型仮想化の違いを説明せよ。
- コンテナを利用することで、アプリケーション配布や環境再現にどのような利点があるか考察せよ。
compose.yamlでポート公開や再起動ポリシーを定義しておく利点を説明せよ。