Docker: 无法公开服务
Docker: coudn't expose a service
无法处理我之前做过很多次的简单任务 (我几天前更新了 Docker 如果它很重要并且 docker 有很多错误- compose 甚至不能给出版本): 运行 本地容器并访问公开路径。很简单,但我有一个 Error 61. Connection refused
我的工作:
docker build container_name .
-- 在一个 Docker 文件中我公开了 80 和 5000
docker run -d -p 80:5000 container_name
- 在端口
80
上检查我的 docker-machine dev ip
地址 -- 连接被拒绝。
在容器内,我在端口 5000 上有一个 运行ning gunicorn。它工作正常。
当我登录到容器时,我可以轻松 curl localhost:5000
。并且在 localhost:5000
上得到工作服务器的良好响应。
所以我只需要将主机上的端口 80 映射到容器内的端口 5000,这就是 cmd -p 80:5000
应该做的,对吧?但它不起作用。我做错了什么?
docker version
:
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.3
Git commit: a34a1d5
Built: Fri Nov 20 17:56:04 UTC 2015
OS/Arch: darwin/amd64
Server:
Version: 1.9.1
API version: 1.21
Go version: go1.4.3
Git commit: a34a1d5
Built: Fri Nov 20 17:56:04 UTC 2015
OS/Arch: linux/amd64
不要听 localhost
听 0.0.0.0
(或 *
取决于配置如何)
localhost
是专门在您的容器 内环回 。要将端口映射到主机,您需要监听一个非环回地址。
如果您指定 -p
,则不需要 EXPOSE
- 隐式执行。
无法处理我之前做过很多次的简单任务 (我几天前更新了 Docker 如果它很重要并且 docker 有很多错误- compose 甚至不能给出版本): 运行 本地容器并访问公开路径。很简单,但我有一个 Error 61. Connection refused
我的工作:
docker build container_name .
-- 在一个 Docker 文件中我公开了 80 和 5000docker run -d -p 80:5000 container_name
- 在端口
80
上检查我的docker-machine dev ip
地址 -- 连接被拒绝。
在容器内,我在端口 5000 上有一个 运行ning gunicorn。它工作正常。
当我登录到容器时,我可以轻松 curl localhost:5000
。并且在 localhost:5000
上得到工作服务器的良好响应。
所以我只需要将主机上的端口 80 映射到容器内的端口 5000,这就是 cmd -p 80:5000
应该做的,对吧?但它不起作用。我做错了什么?
docker version
:
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.3
Git commit: a34a1d5
Built: Fri Nov 20 17:56:04 UTC 2015
OS/Arch: darwin/amd64
Server:
Version: 1.9.1
API version: 1.21
Go version: go1.4.3
Git commit: a34a1d5
Built: Fri Nov 20 17:56:04 UTC 2015
OS/Arch: linux/amd64
不要听 localhost
听 0.0.0.0
(或 *
取决于配置如何)
localhost
是专门在您的容器 内环回 。要将端口映射到主机,您需要监听一个非环回地址。
如果您指定 -p
,则不需要 EXPOSE
- 隐式执行。