命令行界面的文档说明如下:
要将容器的端口绑定到主机系统的特定接口,请使用docker run命令的-p参数:
一般语法
docker run -p [([
:[host_port]])|( ):] [/udp] 如果未提供主机接口,则端口将绑定到主机的所有可用接口(也称为INADDR_ANY或0.0.0.0).如果未提供主机端口,则会动态分配一个端口.TCP端口的可能选项组合如下
所以我想知道我是如何使用REST API做同样的事情的?
随着POST /container/create
我尝试:
"PortSpecs": ["5432:5432"]
这似乎暴露了端口,但没有将其绑定到主机接口.
"PortSpecs": ["5432"]
给我与前一个相同的结果.
"PortSpecs": ["0.0.0.0:5432:5432"]
这会返回Invalid hostPort: 0.0.0.0
有意义的错误.
当我做sudo docker ps
容器显示5432/tcp
应该是什么时0.0.0.0:5432/tcp
.
检查容器给我以下内容:
"NetworkSettings": { "IPAddress": "172.17.0.25", "IPPrefixLen": 16, "Gateway": "172.17.42.1", "Bridge": "docker0", "PortMapping": null, "Ports": { "5432/tcp": null } }
可以在这里找到全面检查.