質問: AWS EC2内のdockerファイルを展開したコンテナ環境にブラウザからアクセスをしたいです。 以下の手順でdocker環境を展開していきました。 * Dockerイメージを作成 ``` docker build -t hoge ``` * 以下のコマンドでコンテナを起動 ``` docker run -p 8080:80 -p 10022:22 --privileged -d hoge ``` * 以下のコマンドでssh接続し、ソース展開 ``` ssh root@localhost -p 10022 ``` ここで、コンテナに展開したブラウザにアクセスには以下のurlにアクセスすれば良いと考えました。 EC2のパブリックv4IP:8080 しかしどうやら、間違っていたようです。 EC2内に展開したdockerコンテナの中に展開したソースにブラウザアクセスするには アクセスするためのurlはどのようになるでしょうか? 調査方法も教えていただけますと幸いです。
回答: Docker周りの操作は合っているように見受けられます。 ですのでアクセスするためのurlはそれでOKかと思います。 以下のことを試してください(netcatを使って通信の疎通確認をします) * EC2インスタンス内からDocker環境への疎通確認 > > $ nc -vz localhost 8080 > > // 成功した場合以下のようなメッセージ > > Ncat: Connected to x.x.x.x:8080. > > > * ローカル環境からEC2インスタンスへの疎通確認 > > $ nc -vz EC2のパブリックv4IP 8080 > > // 成功した場合以下のようなメッセージ > > Ncat: Connected to EC2のパブリックv4IP:8080. > > > いずれかで失敗した場合、 前者はdockerのポートフォワーディングが動いていないか内部のWEBアプリが動いていません。 後者はローカル環境からEC2へのアクセスができていません(セキュリティグループの設定など見直してください、EC2に設定しているセキュリティグループで8080ポートへのアクセスは許可しているでしょうか)。 後者の場合の参考 * Amazon EC2 > Linux インスタンス用ユーザーガイド > インスタンスへの接続に関するトラブルシューティング