Docker:暴露端口拒绝连接

时间:2017-07-30 20:13:27

标签: http docker docker-compose connection-refused

我有两个Docker容器:node-a,node-b。其中一个(node-b)应该向其他(node-a)发送http请求。我是用Docker Compose开始的。当我用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似乎已被弃用,并且在2+版本的docker-compose.yml中与depends_on做同样的事情:

  

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

1 个答案:

答案 0 :(得分:0)

使用links将容器链接到服务。 (docker-compose documentation on links)。

示例:

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