我想运行一个 Docker 容器,它只在所述主机上的 docker 实例中内部公开它的端口。这意味着我不希望它公开。
如何从命令行执行此操作?下面的代码公开打开它。
docker run -p 27017:27017 --name mongo mongo
Run Code Online (Sandbox Code Playgroud)
如果执行:
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 应显示为“已关闭”。
| 归档时间: |
|
| 查看次数: |
4294 次 |
| 最近记录: |