作成理由
Dockerは概念理解も重要ですが、まずはコマンド操作に慣れることが近道だと感じました。
「習うより慣れろ」の考えで、反復練習用としてまとめています。
目次
- はじめに
- Ubuntu(WSL2)の起動確認
- Docker Desktopの起動確認
- Dockerコマンド反復メニュー
- コマンド概念整理
- 初心者でも意識するセキュリティ視点
- 反復練習の回し方
- 次のステップ
- 追記
1. はじめに
対象読者
- WSL2でUbuntuを利用している方
- Docker Desktopをインストール済みの方
- まずは手を動かして基礎を固めたいWebバックエンド初心者
前提環境
- Windows 10 / 11
- WSL2(Ubuntu)
- Docker Desktop(WSL Integration有効)
Dockerの基本構造
Dockerは以下の関係で動作します。
イメージ(設計図)
↓
コンテナ(実体)
オブジェクト指向で例えると次の関係になります。
クラス(設計図)
↓
インスタンス(実体)
つまり、
| Docker | オブジェクト指向 |
|---|---|
| イメージ | クラス |
| コンテナ | インスタンス |
イメージは変更されません。そこから何度でもコンテナ(インスタンス)を生成できます。
理解ポイント
run→ コンテナ生成start→ 既存コンテナの再利用rm→ コンテナ破棄
2. Ubuntu(WSL2)の起動確認
起動方法
方法①(推奨)
Windowsターミナルを起動 → 「Ubuntu」を選択
方法②(コマンドで起動)
コマンドプロンプト または PowerShell で実行:
wsl
特定ディストリビューションを指定する場合:
wsl -d Ubuntu
動作確認
whoami
uname -a
確認ポイント
- 正しいユーザーでログインできているか
- WSL2が動作しているか
3. Docker Desktopの起動確認
Windows側
スタートメニュー → Docker Desktop起動 → タスクトレイのクジラアイコン確認
Ubuntu側で確認
docker version
docker info
エラーが出る場合は以下を確認する:
- Docker Desktopが起動しているか
- WSL Integration設定が有効か
4. Dockerコマンド反復メニュー
① イメージ確認
docker images
ローカルに存在するイメージ(設計図)の一覧を表示する。
② コンテナ作成&起動
docker run -d --name web1 -p 8080:80 nginx:1.25
| オプション | 意味 |
|---|---|
run |
新規作成して起動 |
-d |
バックグラウンド実行 |
--name |
コンテナ名を指定 |
-p 8080:80 |
ホストの8080番ポートへのアクセスをコンテナの80番ポートに転送 |
nginx:1.25 |
使用イメージとバージョンを指定 |
動作確認 → http://localhost:8080
③ コンテナの状態確認
docker ps
起動中のコンテナを確認するコマンド。
見るポイント
STATUSがUpNAMESにweb1がある
docker ps -a
停止済みも含めて確認するコマンド。
見るポイント
STATUS: Up→ 起動中STATUS: Exited→ 停止中
基本の使い分け: 起動確認は ps、エラー確認は logs
④ コンテナのログ確認
docker logs web1
コンテナの標準出力ログを確認するコマンド。起動エラーや動作確認に使用する。
⑤ コンテナに入る
docker exec -it web1 /bin/sh
「起動中のコンテナの中でシェルを開く」ためのコマンド。
| 要素 | 意味 |
|---|---|
exec |
既に動いているコンテナ内でコマンドを実行する |
-i |
キーボードから入力できるようにする |
-t |
通常のターミナルと同じ見た目にする |
/bin/sh |
コンテナ内で使用するシェル |
なぜ -it を付けるのか?
付けないと、コマンド入力ができない・表示が崩れる・すぐ終了してしまうといった挙動になります。
-it は「普段使っているターミナルと同じように操作できる状態にするための指定」と覚えれば十分です。
コンテナ内に入ったら、以下で動作を確認してみましょう:
ls
pwd
ホスト側ではなく「コンテナの中のファイル構成」と「カレントディレクトリ」が表示されれば成功です。
コンテナから抜けるには:
exit
exit はコンテナから抜けるだけで、停止はしません。
理解ポイント
exec= 起動中コンテナの中で操作する-it= 普通のターミナル操作を可能にする
⑥ コンテナの停止
docker stop web1
起動中のコンテナを停止するコマンド。停止=一時停止であり、削除ではない点に注意。
⑦ コンテナの起動・再起動
docker start web1
停止しているコンテナを起動する。
docker restart web1
起動中・停止中どちらのコンテナも再起動する(stop → start を自動実行)。
⑧ コンテナの削除
docker rm web1
停止済みのコンテナを削除する。
強制削除(起動中でも削除):
docker rm -f web1
⑨ コンテナの一時実行(重要)
docker run --rm nginx:1.25
コンテナを作成して実行し、停止時に自動で削除する。
このコマンドはフォアグラウンドで実行されるため、Ctrl + C で停止します。
停止すると --rm によりコンテナは自動削除されます。
--rm= 停止時に自動削除するオプション。動作確認や使い捨て用途で使用。
5. コマンド概念整理
| コマンド | 意味 |
|---|---|
run |
新規作成して起動 |
start |
既存コンテナを再開 |
restart |
再起動 |
stop |
停止 |
rm |
コンテナ削除 |
exec |
コンテナ内でコマンド実行 |
images |
イメージ一覧表示 |
ps |
コンテナ一覧表示 |
6. 初心者でも意識するセキュリティ視点
| # | 視点 | 対策 |
|---|---|---|
| 1 | ポート公開は最小限 | 不要な -p は使わない |
| 2 | バージョン固定 |
nginx:latest は避ける |
| 3 | root実行を常用しない |
whoami を確認する習慣をつける |
| 4 | 不要コンテナを放置しない |
docker ps -a で定期確認 |
7. 反復練習の回し方
毎回この順で実施する:
runpslogsexecstopstartrm
3周すると操作が定着する。
8. 次のステップ
基礎が定着したら以下へ進むと実務レベルに近づく:
- ボリュームマウント
- docker compose
- 環境変数管理
9. 追記
Dockerイメージの削除
docker rmi [イメージ名 または イメージID]
イメージを使っているコンテナが1つでも残っていると、エラーで弾かれます。
先に docker rm でコンテナを削除してから実行すること。