无法使用 IP 地址访问本地 docker 容器

时间:2020-12-30 18:52:57

标签: docker containers ip-address

我在我的 Mac 系统上本地运行一个 docker 容器。我在这篇文章的底部粘贴了 Dockerfile 的内容。我在图像中暴露了端口 8888,我想使用 container-ip-address:8888 从我的主机浏览器访问 python 程序。但是,它没有连接。将它映射到本地主机上的端口是可行的,但我不想这样做。我该如何解决这个问题? (已经尝试创建一个 docker 网络并将容器作为新网络的一部分运行 - 没有骰子)。任何帮助将非常感激。 Dockerfile 内容 -

=ARRAYFORMULA(MOD(ROW(A2:A)-2,6)+1)

1 个答案:

答案 0 :(得分:0)

Expose 只是告诉 docker 这个容器将使用这个端口。它不会将它映射到任何地方。 https://docs.docker.com/engine/reference/builder/#expose

映射是运行容器的代码任务。在本地机器的情况下,它是一个码头工人。如果您不在 docker run 中映射端口,则无法从 docker 网络外部访问容器。同时你的主机不在docker网络中。如果您手动创建 docker 网络,情况也是如此 - 您的机器只是无法访问它的内部部分。

换句话说,您必须选择自己的方式:

  • 在执行 docker run(本地开发)时使用 -p ....
  • 或者如果您使用 docker composer(主要是本地开发),则在 docker compose 文件中定义它。当您在 docker 中运行多个通信系统时,这种方法非常有用。
  • 或者,如果您使用解决方案进入 kubernetes(使用编排器/自动缩放器等进行生产),则通过生产中的 kubernetes yaml 定义文件来完成