Windows11 WSL2 Ubuntu 24.04 LTS Docker

Docker Compose ファイル実行

ここまでで、Docker httpd を動作させる準備が終わりました。
引き続き httpd Docker Compose ファイルを実行していきます。
WSL2 Ubuntu 24.04 LTS ディスクトップ日本語からターミナルを開きます。
PowerShell 7 からでもターミナルを開くことができます。
S PowerShell 7 追加インスト-ル参照。
コンテナフォルダ \doc-httpd に移動します。
yamada@yama:~$ cd doc-httpd
移動できたら次のコマンドを入力実行します。
yamada@yama:~/doc-httpd$ docker compose up -d
\doc-httpd にある docker-compose.yml を -d バックグラウンドで処理します。
[結果]

yamada@yama:~/doc-httpd$ docker compose up -d
[+] Running 7/7
 ✔ httpd Pulled                          8.1s
   ✔ 254e724d7786 Pull complete          2.4s
   ✔ 10d01782dc02 Pull complete          2.4s
   ✔ 4f4fb700ef54 Pull complete          2.4s
   ✔ 4ceeea7b3d76 Pull complete          3.7s
   ✔ 0ff470512d2f Pull complete          4.6s
   ✔ ba78a05e3b3c Pull complete          4.6s
[+] Running 2/2
 ✔ Network doc-httpd_default    Created  0.0s
 ✔ Container doc-httpd-httpd-1  Started 

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

ハロー!
Docker httpd


Docker Compose で立ち上げたコンテナは 以下のようにで動作を止めることができます。

   
yamada@yama:~/doc-httpd$ docker compose down
[+] Running 2/2
 ✔ Container doc-httpd-httpd-1  Removed  1.4s
 ✔ Network doc-httpd_default    Removed  0.6s

特定のコンテナ内でコマンド実行

Docker httpd Compose ファイル作成の時、 コンテナ内の Apache の DocumentRoot ディレクトリのデフォルト値は
/usr/local/apache2/htdocs/
に設定されていると書きました。
なぜそんなことが分かったのでしょうか。
exec を使うと立ち上げた特定のコンテナ内でコマンドを実行することができます。
まずは docker compose up -d でコンテナを立ち上げます。
次に
docker compose exec httpd bash
とします。
exec の後には docker-compose.yml ファイルの service 内の image 名を入力します。
bash というのは対話式のコマンドで bash という名前のシェルを立ち上げます。
bash を使うと新たな画面が開いてコンテナ内の操作をすることができます。
そして、exec を実行した後は exit コマンドで bash から出ることができます。
それではコンテナ httpd のファイル構成を bash を使用して確認して行きます。
yamada@yama:~$ cd doc-httpd
yamada@yama:~/doc-httpd$ docker compose up -d
[結果]
[+] Running 1/1
✔ Container doc-httpd-httpd-1 Started  0.2s

yamada@yama:~/doc-httpd$ docker compose exec httpd bash
root@43ffa5688018:/usr/local/apache2#
シェルが開きます。
このシェルで
ls コマンド
ls ディレクトリの内容をリスト表示する
 -l 詳細リスト形式を表示する
 -a .で始まる要素を無視しない
を使ってコンテナ httpd のファイルディレクリを見てみます。


root@43ffa5688018:/usr/local/apache2# ls -la
total 56
drwxr-xr-x 1 www-data www-data 4096 Apr 28 21:44 .
drwxr-xr-x 1 root     root     4096 Apr 28 21:42 ..
drwxr-xr-x 2 root     root     4096 Apr 28 21:44 bin
drwxr-xr-x 2 root     root     4096 Apr 28 21:44 build
drwxr-xr-x 2 root     root     4096 Apr 28 21:44 cgi-bin
drwxr-xr-x 4 root     root     4096 Apr 28 21:44 conf
drwxr-xr-x 3 root     root     4096 Apr 28 21:44 error
drwxr-xr-x 2     1000     1000 4096 May  1 09:47 htdocs
drwxr-xr-x 3 root     root     4096 Apr 28 21:44 icons
drwxr-xr-x 2 root     root     4096 Apr 28 21:44 include
drwxr-xr-x 1 root     root     4096 May  4 08:47 logs
drwxr-xr-x 2 root     root     4096 Apr 28 21:44 modules

ここまでで、コンテナ httpd のファイルディレクリは
/usr/local/apache2
にあり conf フォルダも存在することが分かりました。
conf フォルダの内容を見てみましょう。

   
root@43ffa5688018:/usr/local/apache2# cd conf
root@43ffa5688018:/usr/local/apache2/conf# ls -la
total 120
drwxr-xr-x 4 root     root      4096 Apr 28 21:44 .
drwxr-xr-x 1 www-data www-data  4096 Apr 28 21:44 ..
drwxr-xr-x 2 root     root      4096 Apr 28 21:44 extra
-rw-r--r-- 1 root     root     20827 Apr 28 21:44 httpd.conf
-rw-r--r-- 1 root     root     13064 Apr 28 21:44 magic
-rw-r--r-- 1 root     root     60970 Apr 28 21:44 mime.types
drwxr-xr-x 3 root     root      4096 Apr 28 21:44 original

httpd.conf が見つかりました。
cat コマンドで httpd.conf ファイルの内容も見てみましょう。
長い記述が存在します。
その途中に
DocumentRoot "/usr/local/apache2/htdocs"
と書かれています。
これがドキュメントルートになります。


root@43ffa5688018:/usr/local/apache2/conf# cat httpd.conf
#
# This is the main Apache HTTP server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See  for detailed information.
・・・・・・・・
#
DocumentRoot "/usr/local/apache2/htdocs"
  <Directory "/usr/local/apache2/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
・・・・・・・・

ここまでで Docker httpd を使用して Web サイトを表示することができるようになりました。
そして、そのファイル構成も見ることができました。
引き続き Dockerfile を使用して Docker nginx を構築して行きます。


  • Dockerfile で Docker nginx 構築 に進む
  • Docker 使用 Web サイト表示 に戻る
  • Docker コンテナ チュートリアルなぜ動く に戻る
  • Docker コンテナ チュートリアル に戻る
  • Docker CE インストール概要 に戻る
  • 70VPS に戻る