私はDockerバージョン17.06.2-ceを使用しています。CentOS Linuxリリース7.2.1511でcec0b72をビルドします。他のホスト上のドッカーコンテナにアクセスするときのHTTP 403の応答
私の目標は、ドッキング用のコンテナをホストのポートの1つに公開し、その情報を同じサブネット内の別のシステムから見えるようにすることです。私のドッカーの画像はfriendlyhello image built in the getting started tutorialです。私はan image of it on docker hubを持っています。あなたは以下のコマンドでそれを引き出すことができます。ときコンテナが実行されているホスト上のI curl localhost:8080
またはcurl 10.x.x.x:8080
ながら、それは、ファイル内のポート80を露出させ、その後、私は正しいレスポンス(基本的に「Hello World」)を取得することができます
docker run -d -p 8080:80 jeremydr2/get-started:part2
で画像を呼び出します。別のホストにカールすると、私はいくつかのHTML形式と
default "Access Denied" response (403)
Note that a successful response can take over a minuteを得るが、失敗した応答は、まだすぐになります。
From whatI've readabout this私は実際にネットワーキングをよく理解していないので、これを動作させるためにiptablesを全く混乱させる必要はありません。しかし、私は何かが間違っていると思う。iptables -t nat -L | grep 8080
は、そのポートへのトラフィックをリダイレクトまたは許可する行があると思っても、何も返さないからだ。私はSELinuxとfirewalldを無効にし、代わりにiptables-servicesをインストールしました。
私のような他のコマンドとホスト間のトラフィックを送信することができますので、私はそれだけで、ネットワークの設定が間違っていない自信が
[[email protected] ~]# ncat -l 8001
[[email protected] ~]# echo "testing123" > /dev/tcp/<host1_ip_addr>/8001
。 FWIW、私もでdocker run ...
コマンドを試しましたが、これも役に立たなかった。これは私の人生の2日間です。誰かがアドバイスを持っているなら、私は大いに感謝します。
EDIT:これは間違いなく、ネットワークの設定が間違っています。私は自宅でそれをやり直しました。そして、それは誰もがドッカーが想定しているように「ちょうどうまくいった」のです。ネットワークのどの部分がドッカーをブロックしているかを把握する方法についてのアドバイスは高く評価されます。