5

我有来自 dockerfile 的图像,它设置了容器,但我需要使用 docker REST API 创建和启动容器。问题是我有暴露 ssh 端口的问题。我已经从 dockerfile 中删除了 EXPOSE,并构建了图像。

之后,我使用此 json 在 /containers/create 上发出 POST 请求:

{"Image":"frantiseks/apac","ExposedPorts":{"22/tcp":{}},"Memory":600000,"CpuShares":50}

容器已成功创建,因此下一步我使用 JSONPOST请求 启动它:/containers/$id/start

{"PortBindings": { "22/tcp": [{ "HostPort": "11022" }] }}

但是在检查容器后我没有看到映射的端口,所以容器没有将 22 暴露给主机 11022 端口。我使用的是 0.7.1 版。

有人可以告诉我我做错了什么吗?谢谢

PS:检查容器:http: //jsonblob.com/52b01e45e4b0439bc58ec8d4

4

2 回答 2

1

(为迟到的答案道歉,“社区”决定提出您的问题)

使用当前的 1.24 api,这一切都在容器创建中完成。您需要在其中包括以下内容:

   "HostConfig": {
     "PortBindings": { "22/tcp": [{ "HostPort": "11022" }] },
   }
于 2016-10-16T13:57:24.743 回答
0

你试过: {HostIp:"", HostPort:"11022"}

于 2014-06-26T08:40:20.823 回答