0

我有两个 Docker 容器:node-a、node-b。其中一个(node-b)应该向另一个(node-a)发送http请求。我从 Docker Compose 开始。当我尝试使用 Compose 提升它们时,我遇到了一个错误:

获取http://node-a:9098 : 拨打 tcp 172.18.0.3:9098: getsockopt: 连接被拒绝

EXPOSE 在 a-node 的 Docker 文件中声明:

EXPOSE 9098

码头工人-compose.yml:

version: '3'                         
services:                            
    node-a:         
        image: a        
        ports:                       
            - 9098:9098              
        volumes:                     
            - ./:/a-src 
        depends_on:                  
            - redis                  
    node-b:            
        image: b           
        volumes:                     
            - ./:/b-src    
        depends_on:                  
            - node-a

转发已启用。我相信服务器启动是因为它在没有 Docker 的情况下运行良好。

我应该注意哪里?什么可能导致问题?

编辑:

我尝试添加链接,但没有效果:

node-b:            
        image: b           
        volumes:                     
            - ./:/b-src 
        links:
            - node-a   
        depends_on:                  
            - node-a

links似乎也已被弃用,并且与 docker-compose.yml 的 2+ 版本执行相同的操作depends_on

docker-compose 执行 V2 文件,它会自动在文件中定义的所有容器之间建立一个网络,每个容器都可以立即使用 docker-compose.yml 文件中定义的名称来引用其他容器。

4

1 回答 1

0

使用 . 将容器链接到服务links。(关于链接的 docker-compose 文档)。

例子:

node-b:            
    image: b           
    volumes:                     
        - ./:/b-src    
    depends_on:                  
        - node-a
    links:
        - node-a
于 2017-07-30T20:28:12.877 回答