前回、Amazon linux2 Dockerコンテナへ名前ベースのバーチャルホストを設定しました。
しかし、指定する IPアドレス 部分を * にしているので実際にどのIPアドレスが使用されているか不明でした。
127.0.0.1 を指定すれば動作すると思ったのですが、動作しませんでした。dockerコンテナ内のIPアドレスなのでローカルホストのIPにはならないので当然ですね。
それでは、IPアドレスが分かれば、それを設定すれば良いと思い確認しました。
docker のIPアドレスの確認方法
結論から言うと、以下の方法でIPアドレスを確認しました。
dockerコンテナのIPアドレスを確認しました。
dockerコンテナ内ではなくローカルPCから実行して下さい。
・コマンド
docker inspect コンテナID
・結果一部抜粋
Json形式で表示されます。
正直、正確にどこがIPアドレスなのかは分かりませんが、IPアドレスっぽい部分がそうかなと思い、以下のIPを使います。
172.18.0.2 がIPアドレスのようです。
"Networks": {
"05_apache_default": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"web",
"a2ffb1934b80"
],
"NetworkID": "d7d3c5cfa5c0eaff04bbbc0fffea9b2d094c301063d974f99a2702d47a5ca17f",
"EndpointID": "e743e39c3e4ae4cb257479fde606a48fe9a1ca9e2f6c1745430716da8c7c0b2c",
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:12:00:02",
"DriverOpts": null
}
}
バーチャルホストの設定
設定の変更
バーチャルホストの設定へIPアドレスを記載します。
NameVirtualHost 172.18.0.2:80
<VirtualHost 172.18.0.2:80>
ServerName local.test.com
DocumentRoot /www-contents
<Directory "/www-contents">
Options -Indexes +FollowSymLinks
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
Apacheの設定読み込み
設定ファイルを変更しただけではApacheは設定を読み込んでくれません。Apacheを再起動すると変更した設定を読み込んでくれます。
ゆえに、Apacheを再起動します。
systemctl restart httpd
最後に
ifconfig、ip a などのネットワークを確認するコマンドが command not found になるのでどうしたものかと思ってましたが、コンテナのIPを調べればいいと思ったのでdockerコンテナのIPアドレスの調べ方を調べました。