无法使用docker-compose.yaml文件连接容器

时间:2017-08-13 10:10:31

标签: docker docker-compose dockerfile

我创建了两个Dockerfiles来在Web应用程序中运行前端和后端。当我运行docker-compose.yaml文件时,Web应用程序前端会打开Web浏览器。但我无法登录系统。我认为连接这些容器存在问题。以下是我的docker-compose.yaml文件。我该怎么做才能解决这个问题?

version: '2'
services:
gulp:
  build: './ui'
  ports:
    - "3000:4000"

python:
  build: '.'
  ports:
    - "5000:5000"

2 个答案:

答案 0 :(得分:0)

您需要使用--links来启用容器之间的通信,并且您应该使用他们的DNS网络别名,例如http://python:5000

答案 1 :(得分:0)

默认情况下,docker-compose文件中的容器是一个网络的一部分。一个容器可以使用其主机名访问其他容器。

可以使用hostname在docker-compose文件中定义主机名。如果未定义主机名,则将服务名称视为主机名。

在内部,docker容器可以通过在主机名中相互引用来相互通信。就像你的情况一样,gulp可以在http://python:5000访问python,即使你没有声明端口也可以。这一切都发生了,因为它是docker系统的内部。

从外部来看,如果要连接到任何服务,则可以像您一样定义ports,然后在定义的端口号上访问这些服务。