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
なんだか長すぎますね。
分解して説明します。
- 引数コマンド -v
本当は Dockerfile 内で VOLUME 命令を使って設定したかったのですがダメでした。
docker run -v [ホスト側のディレクトリパス]:[コンテナ内のディレクトリパス]
で dockerコンテナとホスト間でファイルを共有します。
絶対アドレスで記述するようです。
ホスト側のディレクトリパス
→ /home/yamada/doc-nginx/htdocs
コンテナ内のディレクトリパス
→ /var/www/html
となります。 - 引数コマンド -d
-d でバックエンドで処理をするよう命令します。
これがないと他の処理ができません。
- 引数コマンド -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 コンテナのファイル構成を確認していきます。