我创建了两个Dockerfiles来在Web应用程序中运行前端和后端。当我运行docker-compose.yaml文件时,Web应用程序前端会打开Web浏览器。但我无法登录系统。我认为连接这些容器存在问题。以下是我的docker-compose.yaml文件。我该怎么做才能解决这个问题?
version: '2'
services:
gulp:
build: './ui'
ports:
- "3000:4000"
python:
build: '.'
ports:
- "5000:5000"
答案 0 :(得分:0)
您需要使用--links
来启用容器之间的通信,并且您应该使用他们的DNS网络别名,例如http://python:5000
答案 1 :(得分:0)
默认情况下,docker-compose文件中的容器是一个网络的一部分。一个容器可以使用其主机名访问其他容器。
可以使用hostname在docker-compose文件中定义主机名。如果未定义主机名,则将服务名称视为主机名。
在内部,docker容器可以通过在主机名中相互引用来相互通信。就像你的情况一样,gulp可以在http://python:5000
访问python,即使你没有声明端口也可以。这一切都发生了,因为它是docker系统的内部。
从外部来看,如果要连接到任何服务,则可以像您一样定义ports
,然后在定义的端口号上访问这些服务。