前提・実現したいこと
GCP最小構成にてGrowiというWebベースWikiをDockerコンテナに構築したいです。
自身のMacで試してみると接続できたのですが、GCPのVMだとどうしてもうまく行きません;x;
解決にあたって提示する情報が不足していましたらすいません。
バックエンド初心者なため色々ご指摘ください。
発生している問題
- 外部IPを使用してのアクセスができない
- ホストからのアクセスもできない
- コンテナ内からもアクセスできない
環境
Ubuntu version 19.04
docker-compose version 1.25.0
Docker version 19.03.3
Dockerfile
docker-compose.yml
こちらをポートだけ下記にように変更しDocker-composeでバックグラウンド起動させています。
ports: - 3000:3000
確認したこと
ここでは0.0.0.0:3000->3000/tcpになっているのでおそらくリクエスト(any)ポート3000に対してコンテナの3000ポートに転送したいため起動設定はあっているようにも思えます。
private-growi:~/growi$ docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c7e43cdf8d5b growi_app "/sbin/tini -e 143 -…" About an hour ago Up 52 seconds 0.0.0.0:3000->3000/tcp growi_app_1
ですが、ホストから自身のポート3000にリダイレクトすることができません。。。
private-growi:~/growi$ curl localhost:3000 curl: (52) Empty reply from server
DNATの設定も問題ないように思います。
private-growi:~/growi$ sudo iptables --list -v -t nat Chain DOCKER (2 references) pkts bytes target prot opt in out source destination 0 0 RETURN all -- docker0 any anywhere anywhere 0 0 RETURN all -- br-3991e5738a1c any anywhere anywhere 0 0 DNAT tcp -- !br-3991e5738a1c any anywhere anywhere tcp dpt:3000 to:172.18.0.3:3000
別環境(自身のMac)では:::3000がlistenしていてこいつにポートフォワードされるから接続できているっぽいです。
なぜGCP環境だとこれが生成されないのでしょうか?
また何かしらを追記することでコンテナ起動時にアプリケーションを:::3000でlistenさせることは可能でしょうか?
MacContainer
1$ docker exec -it growidockercomposemaster_app_1 sh 2/opt/growi # netstat -nltu 3Active Internet connections (only servers) 4Proto Recv-Q Send-Q Local Address Foreign Address State 5tcp 0 0 127.0.0.11:45621 0.0.0.0:* LISTEN 6tcp 0 0 :::3000 :::* LISTEN 7udp 0 0 127.0.0.11:57022 0.0.0.0:*
GcpContainer
1private-growi:~/growi$ docker exec -it growi_app_1 sh 2/opt/growi # netstat -nltu 3Proto Recv-Q Send-Q Local Address Foreign Address State 4tcp 0 0 127.0.0.11:35331 0.0.0.0:* LISTEN 5udp 0 0 127.0.0.11:53549 0.0.0.0:*
回答1件
あなたの回答
tips
プレビュー