相当于Docker的远程API命令-p 80:80?

我正在尝试使用docker的Remote API启动Docker容器。 我可以启动容器,但无法公开和映射容器的端口到主机端口。

我需要使用远程API JSON来执行以下ssh命令

docker run -i -t --expose 80 -p 80:80 my_image_nodejs nodejs /var/www/server.js 

现在我正在使用下面的JSON。

 { "Image": "f96f6e304cfcd630ee51af87baf30dfd42cf1f361da873a2f62ce6654d7a4c6b", "Memory": 0, "MemorySwap": 0, "VolumesFrom": "", "Cmd": [ "nodejs", "/var/www/server.js", "-D" ], "PortBindings": { "80/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "80" } ] }, "ExposedPorts": { "80/tcp": {} } } 

提前致谢

这适用于我:

容器创build

ExposedPorts:{“80 / tcp”:{},“22 / tcp”:{}}

容器启动

PortBindings:{“80 / tcp”:[{“HostPort”:“80”}],“22 / tcp”:[{“HostPort”:“22”}]}

如果你知道如何设置Env,我刚刚发送了我的问题:-)

我相信你的要求应该是:

 curl -X POST -H "Content-Type: application/json" -d '{ "AttachStdin":false,"AttachStdout":true,"AttachStderr":true, "ExposedPorts": { "80/tcp": {}}, "Cmd": [ "nodejs","/var/www/server.js","-D" ], "HostConfig":{ "PortBindings": { "80/tcp": [{ "HostPort": "80" }] } }, "Image":"my_image_nodejs", "Tag":"latest" }' $DOCKER_DAEMON/containers/create 

其中$ DOCKER_DAEMON是主机监听远程请求。 PortBindingsExposedPorts在不同的部分。 您可能想要参考Docker远程API v1.22的更多细节。

希望这可以帮助。