今回はせっかくなので、apacheコンテナを動作させるついでに、
ポート転送(ポートフォワーディング)の動作確認をしてみたいと思います。
- ■ポート転送とは?
- ■作業の流れ
- ■① コンテナ起動時に「8080番ポートへのアクセスは、コンテナの80番ポートに転送する」といった情報を指定します。
- ■② ブラウザ上からlocalhost:8080で接続します。
- ■③ apacheの設定ファイルを更新し、反映した内容が表示されるかを確認します。
■ポート転送とは?
ざっくり説明すると、
ローカルPCの指定したポート番号にアクセスした際に、
そのアクセスをコンテナ側の指定したポートに接続する(=転送する)、
といった感じです。
「ローカルPCの指定したポート」というのは、
あらかじめ自身で"このポートに接続するようにする"という定義をしておく必要があります。
※詳細は後述します。
また、「コンテナ側の指定したポートに接続する」も、あらかじめ自身で"このポートに転送する"という定義をしておく必要があります。
※詳細は後述します。
■作業の流れ
以下の流れで進めていきます。
① コンテナ起動時に「8080番ポートへのアクセスは、コンテナの80番ポートに転送する」といった情報を指定します。
② ブラウザ上からlocalhost:8080で接続します。
③ apacheの設定ファイル(index.html)を更新し、反映した内容が表示されるかを確認します。
■① コンテナ起動時に「8080番ポートへのアクセスは、コンテナの80番ポートに転送する」といった情報を指定します。
1.以下コマンドを実行します。
docker run -d -p 8080:80 --name apache1 httpd
docker ps -a
こちらの内容が冒頭で記載した、
あらかじめ自身で"このポートに接続するようにする" ⇒ 8080
あらかじめ自身で"このポートに転送する" ⇒ 80
という定義部分です。
■② ブラウザ上からlocalhost:8080で接続します。
上記のように「It works!」と表示できていれば成功です。
■③ apacheの設定ファイルを更新し、反映した内容が表示されるかを確認します。
1.以下コマンドを実行します。
docker exec -it apache1 /bin/bash
2.以下コマンドを実行します。
※ 設定前のindex.htmlの内容を確認しています。
※ 以降手順で、index.htmlを修正します。
cat /usr/local/apache2/htdocs/index.html
3.以下コマンドを実行し、を適当な文字列に修正します。
※viコマンドがインストールされていないため、echoコマンドで追記しています。
4.ブラウザを更新すると、追記した文字列が表示されます。
以上です。