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 サービス確認Ⅱ でも少し触れましたが、もう少し詳しくコンテナの状態確認をしていきます。

  1. 実行中のコンテナ確認

    docker ps コマンドを実行して 現在実行中のコンテナのリストを表示させます。 yamada@yama:~/doc-tutorial$ docker ps
    [結果]

  2. 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
    
  3. 停止中のコンテナも含め確認

    docker ps -a コマンドを実行して
    停止中のコンテナも含めリストを表示させます。
    すると今度は docker をインストールした時おまけで入った 停止中の hello-world を見ることができます。
    yamada@yama:~/doc-tutorial$ docker ps -a
    [結果]

  4. 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
    
  5. 実行中のコンテナを停止

    docker stop tutorial コマンドを実行して
    現在実行中のコンテナ tutorial を停止します。
    yamada@yama:~/doc-tutorial$ docker stop tutorial
    [結果]
    tutorial
    docker ps コマンドを実行して
    現在実行中のコンテナのリストを表示させます。
    動作中のコンテナがないことが分かります。
    yamada@yama:~/doc-tutorial$ docker ps
    [結果]

  6.    
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    
  7. コンテナ/イメージ削除

    コンテナ及びコンテナイメージ削除コマンドについても触れておきます。
    コンテナ削除
    docker rm tutorial
    コンテナイメージ削除
    docker image rm docker/getting-started
    コンテナイメージ一覧表示で確認
    docker image ls


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'

内容を分解して説明します。

  1. services:

    Docker Compose は複数の Docker 環境を立ち上げることができます。
    今回は tutorial と言うコンテナだけを立ち上げますが、ここに続けて記述することにより、 他のコンテナも立ち上げることができます。

  2. image:

    読み込む Docker イメージを指定します。

  3. 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 サイトを表示 させてみます。


  • Docker 使用 Web サイト表示 に進む
  • Docker コンテナ チュートリアル に戻る
  • Docker CE インストール概要 に戻る
  • 70VPS に戻る