dockerで後からポートを公開する

  • 66
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

docker で後からポートを公開する

docker run したときに -p を忘れたり後から公開の必要ができた場合には

iptables -t nat -A DOCKER ! -i docker0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.17.0.15:80

でポート転送すればよい
ubuntu 14.04 ではこの設定でOKだった
DockerfileでEXPOSEしていないポートでも転送できた
IPアドレスは外からは docker inspect で確認

うまくいかな場合は iptables-save でほかのコンテナの転送設定見てやればいいと思う

2014/12/30 追記:

ubuntu 14.04のdockerのパッケージをdocker.ioからlxc-dockerに変更したら natテーブルだけじゃダメで FORWARDも必要だった

iptables -t nat -A DOCKER ! -i docker0 -p tcp -m tcp --dport 9292 -j DNAT --to-destination 172.17.0.49:80
iptables -A FORWARD -d 172.17.0.49/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 80 -j ACCEPT