Windows11 WSL2 Ubuntu 24.04 LTS Docker

Docker nginx Dockerfile ファイル作成 Ⅱ

ここまでで Docker nginx Dockerfile ファイルの内容説明が完了しました。
引き続き、自分の PC Windows で TeraPad 等を使用して
Dockerfile ファイル(内容 A)
を作成しこれを保存します。
Windows 側のエクスプローラーにおいて、ネットワークの下に Linux のフォルダがあります。
Linux の中に
Ubuntu-24.04(\\wsl.localhost)
のフォルダがあります。
\\wsl.localhost\Ubuntu-24.04\home\yamada\doc-nginx
ここに Dockerfile を保存します。
ファイル名は必ず
Dockerfile
です。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
\doc-nginx
はこのページの最初に作成したフォルダです。

Docker httpd 動作確認用ファイル作成

Docker httpd 動作確認用 index.html ファイルを作成します。
内容は適当です。


<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>ドキュメント</title>
</head>
<body>
<p>ハロー!
<br>Docker nginx
<br>Dockerfile でイメージを構築しました
</p>
</body>
</html>

自分の PC Windows で TeraPad 等を使用して index.html が作成できたらこれを保存します。
Windows 側のエクスプローラーにおいて、ネットワークの下に Linux のフォルダがあります。
Linux の中に
Ubuntu-24.04(\\wsl.localhost)
のフォルダがあります。
\\wsl.localhost\Ubuntu-24.04\home\yamada\doc-nginx\htdocs
ここに index.html を保存します。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。

Docker イメージ作成

WSL2 Ubuntu 24.04 LTS ディスクトップ日本語からターミナルを開きます。
PowerShell 7 からでもターミナルを開くことができます。
PowerShell 7 追加インスト-ル参照。
コンテナ フォルダ \doc-ngnix に移動します。
yamada@yama:~$ cd doc-ngnix
移動できたら次のコマンドを入力実行します。
yamada@yama:~/doc-nginx$ docker build . -t doc-nginx
・・・ ①
まずは、docker build . -t コマンドで Docker イメージを構築します。
自分で構築した独自の Docker イメージです。
内容を理解しているのでこの先いかようにも自分で変更可能です。
できたイメージ名は doc-nginx になります。
docker build の 一つ目の引数で Dockerfile の場所を指定します。
今回は同じディレクトリに Dockerfile を設置していますので「.」で現在のディレクトリを指定しています。
二つ目の -t でその次に続く文字列を元に作成するイメージに名前と 一般的にバージョンを記憶するタグ(省略可)を指定します。
今回タグは省略しました。
例としては doc-ngnix:latest のように書きます。 ①の実行には 213秒かかりました。 yamada@yama:~/doc-nginx$ docker images
とすると
[結果]

REPOSITORY  TAG     IMAGE ID      CREATED             SIZE
doc-nginx   latest  5cb328430095  About a minute ago  135MB

のようにイメージができていることを確認することができます。

Dockerfile ファイル実行

出来上がった Docker イメージ doc-nginx を動作させます。
yamada@yama:~/doc-nginx$
docker run -v /home/yamada/doc-nginx/htdocs:/var/www/html -d -p 8090:80 doc-nginx
なんだか長すぎますね。
分解して説明します。

  1. 引数コマンド -v

    本当は Dockerfile 内で VOLUME 命令を使って設定したかったのですがダメでした。
    docker run -v [ホスト側のディレクトリパス]:[コンテナ内のディレクトリパス]
    で dockerコンテナとホスト間でファイルを共有します。
    絶対アドレスで記述するようです。
    ホスト側のディレクトリパス
    → /home/yamada/doc-nginx/htdocs
    コンテナ内のディレクトリパス
    → /var/www/html
    となります。

  2. 引数コマンド -d

    -d でバックエンドで処理をするよう命令します。
    これがないと他の処理ができません。

  3. 引数コマンド -p

    仮想コンピュータとパソコン側のコンピュータを -p 引数コマンドで接続します。
    ports:8088 は doc-tutorial
    ports:8089 は doc-httpd
    で使用しましたので、今回は
    ports:8090 を使用します。
    パソコン側で 8090 番ポートにアクセスすると、仮想コンピュータ内の 80ポートに接続されます。
    80番は仮想コンピュータのウェブサーバーのポートを指しています。
    パソコン側でのポート番号指定は 0~65535 までいくつでも良いのですが、
    すでに割り当てられている番号は避けてください。
    ウェブサーバーのポートは基本 80 ですので 8001~8099 あたりが良いと思います。

まとめると


yamada@yama:~/doc-nginx$ docker run -v /home/yamada/doc-nginx/htdocs:/var/www/html -d -p 8090:80 doc-nginx

のようになり、コンテナ doc-nginx が作成されます。
ブラウザのアドレスバーに
http://localhost:8090
と入力してみましょう。
Docker 環境の構築に成功していれば
\\wsl.localhost\Ubuntu-24.04\home\yamada\doc-nginx
に置いた index.html の内容が表示されます。

ハロー!
Docker nginx
Dockerfile でイメージを構築しました


doc-nginx で立ち上げたコンテナは
Ctrl ^c
で動作を止めることができます。
docker ps -a
を使ってコンテナの起動/停止させる時に使う CONTAINER ID を確認してみます。

  
yamada@yama:~/doc-ngnix$ docker ps -a
CONTAINER ID  IMAGE      COMMAND                  CREATED         STATUS                   PORTS NAMES
51c9b8a69a22  doc-nginx  "nginx -g 'daemon of…"  28 minutes ago  Exited (0) 17 minutes ago      clever_shockley

CONTAINER ID   51c9b8a69a22
が見つかりました。
再スタートは この CONTAINER ID を使って行います。
yamada@yama:~/doc-nginx$ docker start 51c9b8a69a22
コンテナの停止は
yamada@yama:~/doc-nginx$ docker stop 51c9b8a69a22
です。
コンテナ削除はコンテナ停止後
yamada@yama:~/doc-nginx$ docker rm 51c9b8a69a22
です。

ここまでで Dockerfile を使用して Docker Nginx を構築し これを使用して Web サイトを表示することができました。
引き続き、bash シェルを開いて doc-nginx コンテナのファイル構成を確認していきます。


  • bash シェルを開いて doc-nginx コンテナ構成確認 に進む
  • Dockerfile で Docker nginx 構築 に戻る
  • Docker Compose ファイル実行 に戻る
  • Docker 使用 Web サイト表示 に戻る
  • Docker コンテナ チュートリアルなぜ動く に戻る
  • Docker コンテナ チュートリアル に戻る
  • Docker CE インストール概要 に戻る
  • 70VPS に戻る