Windows11 WSL2 Ubuntu 24.04 LTS Docker
Docker コンテナ チュートリアルなぜ動く
ここまでで、Docker コンテナ チュートリアルが動作しました。
でもなぜ表示されたのでしょうか。
コンテナ内には OS は存在しません。
コンテナ内に Ubuntu や CentOS のようなディストリビューションはありません。
ではチュートリアルリアルコンテナはどうやって動作したのでしょうか。
ディストリビューションは
Linux カーネル + 基本ソフトウェア群
で構成されています。
シェルや、普段よく使うコマンド群(例えば echo や grep)は「基本ソフトウェア群」の範疇です。
私の場合 Docker を WSL/Ubuntu 24.04.1 LTS にインストールしました。
Linux カーネルは WSL/Ubuntu 24.04.1 LTS の中にあります。
コンテナは、この Linux カーネルを共有し、コンテナ内の
docker/getting-started
を実行したのです。
コンテナ内では、基本ソフトウェア群を動作させる必要がなかったのです。
もし必要ならば Ubuntu もコンテナ内に読み込ませる必要があります。
コンテナの状態確認
Docker サービス確認Ⅱ でも少し触れましたが、もう少し詳しくコンテナの状態確認をしていきます。
- 実行中のコンテナ確認
docker ps コマンドを実行して 現在実行中のコンテナのリストを表示させます。 yamada@yama:~/doc-tutorial$ docker ps
[結果]
- 停止中のコンテナも含め確認
docker ps -a コマンドを実行して
停止中のコンテナも含めリストを表示させます。
すると今度は docker をインストールした時おまけで入った 停止中の hello-world を見ることができます。
yamada@yama:~/doc-tutorial$ docker ps -a
[結果]
- 実行中のコンテナを停止
docker stop tutorial コマンドを実行して
現在実行中のコンテナ tutorial を停止します。
yamada@yama:~/doc-tutorial$ docker stop tutorial
[結果]
tutorial
docker ps コマンドを実行して
現在実行中のコンテナのリストを表示させます。
動作中のコンテナがないことが分かります。
yamada@yama:~/doc-tutorial$ docker ps
[結果] - コンテナ/イメージ削除
コンテナ及びコンテナイメージ削除コマンドについても触れておきます。
コンテナ削除
docker rm tutorial
コンテナイメージ削除
docker image rm docker/getting-started
コンテナイメージ一覧表示で確認
docker image ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c634cd249824 docker/getting-started "/docker-entrypoint.…" About an hour ago Up About an hour 0.0.0.0:8088->80/tcp, [::]:8088->80/tcp tutorial
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c634cd249824 docker/getting-started "/docker-entrypoint.…" About an hour ago Up About an hour 0.0.0.0:8088->80/tcp, [::]:8088->80/tcp tutorial f201e319dcd4 hello-world "/hello" 2 months ago Exited (0) 2 months ago adoring_blackburn
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Docker Compose を試す
やっと Docker コンテナ チュートリアルが動作するようになりました。
引き続き、同じ Docker チュートリアルをもっと簡単に実行できるようにして行きます。
チュートリアルを動かすだけでも、
docker run --name tutorial -d -p 8088:80 docker/getting-started
のような長い Docker コマンドを入力する必要がありました。
もっと複雑なコンテナを立ち上げたりするには Docker コマンドだけで対処するには大変です。
Docker には Docker Compose という Docker 立ち上げ設定書の機能が存在します。
docker-compose.yml
なるテキストファイルに起動に関する基本てきなコマンドを入力しておくことで、最低限のコマンドを打つだけでコンテナが作成されます。
Docker Compose ファイル作成
Docker コンテナ チュートリアルを起動する Docker Compose ファイル
docker-compose.yml を作成します。
注意すべき点は半角スペースの数を1と決めたら1つ、もう1段階字下げするときは2つ、
さらに字下げするときは3つのようにします。
内容は以下の通りです。
services: tutorial: image: docker/getting-started ports: - '8088:80'
内容を分解して説明します。
- services:
Docker Compose は複数の Docker 環境を立ち上げることができます。
今回は tutorial と言うコンテナだけを立ち上げますが、ここに続けて記述することにより、 他のコンテナも立ち上げることができます。
- image:
読み込む Docker イメージを指定します。
- ports:
仮想コンピュータと繋ぐポート番号を指定します。
自分の PC Windows で TeraPad 等を使用して docker-compose.yml が作成できたらこれを保存します。
Windows 側のエクスプローラーにおいて、ネットワークの下に Linux のフォルダがあります。
Linux の中に
Ubuntu-24.04(\\wsl.localhost)
のフォルダがあります。
\\wsl.localhost\Ubuntu-24.04\home\yamada\doc-tutorial
ここに docker-compose.yml を保存します。
ファイル名は必ず
docker-compose.yml
です。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
\doc-tutorial
はコンテナ フォルダの作成
のところで作成したフォルダです。
Docker Compose ファイル実行
WSL2 Ubuntu 24.04 LTS ディスクトップ日本語からターミナルを開きます。
コンテナ フォルダ \doc-tutorial に移動します。
yamada@yama:~$ cd doc-tutorial
移動できたら次のコマンドを入力実行します。
yamada@yama:~/doc-tutorial$ docker compose up -d
\doc-tutorial にある docker-compose.yml を -d バックグラウンドで処理します。
[結果]
[+] Running 2/2 ✔ Network doc-tutorial_default Created 0.0s ✔ Container doc-tutorial-tutorial-1 Started 0.3s
コンテナ tutorial が作成されました。
ブラウザのアドレスバーに
http://localhost:8088
と入力してみましょう。
Docker 環境の構築に成功していればチュートリアルリアルの画面が表示されます。

Docker Compose で立ち上げたコンテナは 以下のようにで動作を止めることができます。
yamada@yama:~/doc-tutorial$ docker compose down [+] Running 2/2 ✔ Container doc-tutorial-tutorial-1 Removed 0.5s ✔ Network doc-tutorial_default Removed 0.5s
Docker Compose ファイルの有効性
Compose ファイルを使用すると
docker run --name tutorial -d -p 8088:80 docker/getting-started
⇩ ⇩
docker compose up -d
のようにコマンドが簡略化できるとともに
docker-compose.yml
にコンテナ設計書を保存することができます。
これで、やっと Docker コンテナ チュートリアルを動作させたり、止めたりすることができるようになりました。
引き続き
Docker を使用して Web サイトを表示
させてみます。