在内部公开 Docker 端口

Kar*_*son 6 docker

我想运行一个 Docker 容器,它只在所述主机上的 docker 实例中内部公开它的端口。这意味着我不希望它公开。

如何从命令行执行此操作?下面的代码公开打开它。

docker run -p 27017:27017 --name mongo mongo
Run Code Online (Sandbox Code Playgroud)

NZD*_*NZD 6

如果执行:

docker run -p 27017:27017 --name mongo mongo
Run Code Online (Sandbox Code Playgroud)

然后 docker 将其解释为:

docker run -p 0.0.0.0:27017:27017 --name mongo mongo
Run Code Online (Sandbox Code Playgroud)

这意味着该端口可以从主机访问,也可以从外部访问。

您可以通过nmap -p 27017 <host IP>从不同的机器对您的主机运行来验证这一点。端口 27017 应显示为“开放”。

如果执行:

docker run -p 127.0.0.1:27017:27017 --name mongo mongo
Run Code Online (Sandbox Code Playgroud)

然后该端口只能从主机访问。

您可以通过nmap -p 27017 <host IP>从不同的机器对您的主机运行来验证这一点。端口 27017 应显示为“已关闭”。

最后,如果你执行:

docker run --name mongo mongo
Run Code Online (Sandbox Code Playgroud)

然后所有端口都将是容器的本地端口。

同样,您可以通过nmap在主机上针对容器运行来验证:nmap -p 27017 <container IP>. 端口 27017 应显示为“已关闭”。