相当于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是主机监听远程请求。 PortBindings和ExposedPorts在不同的部分。 您可能想要参考Docker远程API v1.22的更多细节。
希望这可以帮助。