Docker-compose链接容器

我试图用docker撰写一个CD / CI构build环境。 我有一个jenkins容器,一个声纳容器和一个archiva容器。 问题是,我的jenkins不能连接到声纳和archiva。

我尝试将多个容器链接在一起,或者将它们连接在同一个networking中,但仍然没有成功。

在jenkins,我得到以下错误:

Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8081 [localhost/127.0.0.1] failed: Connection refused (Connection refused) 

这是我的docker-compose文件。

 version: '2' volumes: data-jenkins: driver: 'local' data-postgres: driver: 'local' data-sonarqube-conf: driver: 'local' data-sonarqube-data: driver: 'local' data-archiva: driver: 'local' services: jenkins: image: 'jenkins' ports: - '8080:8080' restart: 'always' volumes: - 'data-jenkins:/var/jenkins_home' links: - 'sonarqube:sonarqube' postgres: image: 'postgres:9.6.1' environment: - 'POSTGRES_USER=postgres' - 'POSTGRES_PASSWORD=postgres' ports: - '5432:5432' restart: 'always' volumes: - 'data-postgres:/var/lib/postgresql/data' sonarqube: image: 'sonarqube' depends_on: - 'postgres' ports: - '9000:9000' links: - 'postgres:postgres' environment: - 'SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/' - 'SONARQUBE_JDBC_USERNAME=postgres' - 'SONARQUBE_JDBC_PASSWORD=postgres' volumes: - 'data-sonarqube-data:/var/lib/sonarqube/data' - 'data-sonarqube-conf:/var/lib/sonarqube/conf' archiva: image: 'xetusoss/archiva' ports: - '8081:8080' volumes: - 'data-archiva:/var/archiva' environment: - 'SSL_ENABLED=false' 

Jenkins容器似乎生活在一个独立的环境中。 有没有人可以一起join所有的环境? 一直在这个问题上挣扎了近一个星期

要从Jenkins引用sonarqube容器,请使用sonarqube:9000 docker将您的服务名称sonarqube转换为该容器的IP。

我也build议使用不同的networking,而不是链接来连接你的容器。

这是因为ping会声纳。