私はシンプルな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が彼の仕事をします...
UFWルールが詳細については https://docs.docker.com/articles/networking/ を参照する前に、Dockerに独自のiptablesルールが追加されました。
私が置いた鉛を避けるために
DOCKER_OPTS="--ip 127.0.0.1"
/ etc/default/dockerにあります。そのため、localhostにのみバインドし、外部からは到達できません。
Localhostにバインドすると、内部ルーティングが壊れます。私が使う
DOCKER_OPTS="--iptables=false"
この問題を修正します。