基于图像'python:2.7',我创建了两个容器:container1,container2
test1的Dockerfile:
FROM python:2.7
EXPOSE 6789
CMD ["bash", "-c", "'while true;do sleep 1000;done;'"]
test2的Dockerfile:
FROM python:2.7
EXPOSE 9876
CMD ["bash", "-c", "'while true;do sleep 1000;done;'"]
然后我使用上面的dockerfiles构建了两个新图像,命名为:test1,test2
Container1:
docker run --name container1 test1
我还在container1的端口6789上设置了一个Django服务器:
#In Django workspace
./manage.py runserver 6789
container2的:
docker run --name container2 --link container1:container1 test2
我还在container2的端口9876上设置了一个Django服务器:
#In Django workspace
./manage.py runserver 9876
在container2中,当我运行
时curl container1_ip:6789
我连接已拒绝错误。
如何对其进行配置以使其正常工作?
我还创建了一个带有官方nginx图像的容器,它有两个默认端口(80,443)暴露,然后创建另一个容器链接到nginx容器,在容器中,我做了同样的事情
curl nginx_ip:80 #successful
和
curl nginx_ip:443 #connection refused
为什么会这样?为什么80运行良好,443不起作用?
答案 0 :(得分:1)
你想通过“卷曲”容器的6789/9876端口做什么?这些端口后面有什么东西(一个ftp服务器或其他东西?)?
在尝试从其他容器中访问它之前,您应该尝试从容器本身访问它
在容器1中:
curl container1_ip:6789
我认为你可以访问这些端口,但是你的容器上没有任何东西可以监听它们。
编辑:如果你贬低我,请评论解释原因,以便我可以改进我的答案,谢谢。
答案 1 :(得分:0)
问题不在于如何配置docker,这是关于Django的一些配置问题。 Django默认正在侦听 localhost:port ,我们应该指定一个要侦听的IP地址,或者使用' 0.0.0.0'让它听所有的IP地址。