【问题标题】:Exposing a Docker container port暴露 Docker 容器端口
【发布时间】:2014-07-23 13:09:39
【问题描述】:

我一直在尝试通过 ip 连接到 docker 容器,但仍然失败。当我使用“docker inspect container-id”时,我得到了这个结果。

我的虚拟盒子设置是默认的:

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 在运行 docker 时,是否使用 -p <port number> 参数使该端口可用(或在 Dockerfile 中使用 expose)?
  • 不,我没有。你能告诉我如何使用 p 参数运行同一个容器吗?

标签: linux ubuntu docker boot2docker


【解决方案1】:

在运行 docker 时,您可以指定希望外部访问的端口。基本语法是:

docker run -p hostPort:containerPort imageName

或者只是

docker run -p hostPort imageName

在第一种情况下,在外部,hostPort 将被使用,但在容器内部:containerPort 将被使用。在第二种情况下,您只需在容器内部和外部都使用该端口。

您还可以使用 Dockerfile 中的 EXPOSE 命令创建带有暴露端口的映像。

【讨论】:

  • 我提交容器,停止它,然后使用 docker run -p 2375 imageName 运行最新的镜像,但仍然没有结果...
  • docker inspect new_container_id 是否显示相同的内容?
【解决方案2】:

您需要执行端口转发或只是简单地公开端口。

端口转发:

搬运工运行 -p 2022:22 -p 2375:2375

暴露端口:

搬运工运行 -p 22 -p 2375

【讨论】:

  • 感谢您的帮助。我运行了这些命令,但什么也没发生。