Dockerは、コンテナで '--internal'ネットワークを使用すると、コンテナポートをホストにマッピングしません。

Dockerは、コンテナで '--internal'ネットワークを使用すると、コンテナポートをホストにマッピングしません。

私のラップトップでコンテナのインターネット接続を制限したいと思います。ただし、ホストのIPアドレスからコンテナに接続したいので、ポートマッピング/配信が必要です。問題は、ポートマッピングが私のDockerネットワークでは機能しないことです。機能しないということは、コンテナポートがホストポートにマップされていないことを意味します。

Dockerネットワークを作成する方法は次のとおりです。

docker network create -d bridge --attachable --internal nginxnet

コンテナを次のように実行します。

docker run --rm --name='cntnginx' -p 8088:80  --network=nginxnet  -d nginx:stable

コンテナが正常に起動します。コンテナのIPアドレスを使用してNginxサーバーにアクセスできます。ただし、アクセスは127.0.0.1:8088機能しません。また、引数を使用してコンテナを実行してみました-p 0.0.0.0:8088:80。同じ質問。

ただし、nginxnetネットワークを使用せずにコンテナを起動すると、ポートは正しく転送されます。

docker port cntnginxさらに、後者の場合、予想されるコンテナ - ホストポートマッピングが表示されますが、内部専用ネットワークを使用する場合はそうではありません。

何を提供しますか?

私はDocker v20.10.19とContainerd v1.6.8でArch Linuxを使用しています。

注:ブラウザのアドレスバーに誤字がありませんでした。私はポートを8088として指定しました。私もカールを使ってみました。

ベストアンサー1

コマンドdockerパラメータが--internal必要なものと競合しています。

--internal Restrict external access to the network

ポートマッピングはサブネット上になければなりません。これで十分ですが、--internal削除できるようにファイアウォールのように隔離する必要があります。

┌──[[email protected]]-[~]
└─$ docker network create -d bridge --attachable nginx_net
7099c25e475dc829cc6102a168da473e5d9283b82c282d5cd230a40803811983
┌──[[email protected]]-[~]
└─$ docker run  --name=cnt_nginx -p 8088:80  --network=nginx_net  -d nginx
ceea597d085863adaab4d80de6e1e096bebedf8d3455b488e5b8cc6afffd9508
┌──[[email protected]]-[~]
└─$ curl 127.0.0.1:8088
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
┌──[[email protected]]-[~]
└─$

おすすめ記事