web-dev-qa-db-ja.com

Dockerポート転送の露出

私はシンプルなwebappでdockerを試します:

docker run -d -v $(pwd):/ app -p 8080:80 image_name

私は港湾労働者に8080で聞いてもらいます:

tcp6 0 0 ::: 8080 ::: *
LISTEN 13304/docker

そのため、localhost:8080を使用してWebアプリをテストできます

私はUFWでiptablesを使用していますが、80、443、22を除いて着信を拒否しています

しかし驚くべきことに、ポート8080でインターネットから自分のマシンにnetcatを実行すると、自分のWebアプリにアクセスできるようになります。

Dockerは特別なことをする必要があります。

socat TCP6-LISTEN:8080 TCP4:www.google.fr:80

そうですか :

tcp6 0 0 ::: 8080 ::: *
LISTEN 11577/socat

しかし、今回は外部から接続できません... UFWが彼の仕事をします...

6
kondor

UFWルールが詳細については https://docs.docker.com/articles/networking/ を参照する前に、Dockerに独自のiptablesルールが追加されました。

私が置いた鉛を避けるために

DOCKER_OPTS="--ip 127.0.0.1"

/ etc/default/dockerにあります。そのため、localhostにのみバインドし、外部からは到達できません。

5
kondor

Localhostにバインドすると、内部ルーティングが壊れます。私が使う

DOCKER_OPTS="--iptables=false"

この問題を修正します。

2
Bryan Larsen