连接到主机mysql的Docker错误

Docker版本17.03.1-ce,构buildc6d412e操作系统:Ubuntu

我正试图连接到托pipe容器的主机MySQL。 但我得到这个错误。

错误:连接ECONNREFUSED 0.0.0.0:3306

我得到同样的MySQL如果我使用MySQL容器。 也试过127.0.0.1和localhost。

version: '2' services: ### Applications Code Container ############################# applications: image: tianon/true volumes: - ${APPLICATION}:/var/www/html apache2: build: context: ./apache2 volumes_from: - applications volumes: - ${APACHE_HOST_LOG_PATH}:/var/log/apache2 - ./apache2/sites:/etc/apache2/sites-available ports: - "${APACHE_HOST_HTTP_PORT}:80" - "${APACHE_HOST_HTTPS_PORT}:443" networks: - frontend - backend node: build: context: ./node volumes_from: - applications ports: - "4000:30001" networks: - frontend - backend ### MySQL Container ######################################### mysql: build: context: ./mysql environment: - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} volumes_from: - applications volumes: - ${DATA_SAVE_PATH}/mysql:/var/lib/mysql - ./mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d ports: - "${MYSQL_PORT}:3306" networks: - backend ### Networks Setup ############################################ networks: frontend: driver: "bridge" backend: driver: "bridge" ### Volumes Setup ############################################# volumes: mysql: driver: "local" mongo: driver: "local" node: driver: "local" apache2: driver: "local" 

而不是使用0.0.0.0,127.0.0.1或本地主机,你应该使用你的主机的IP。 这是因为每个容器都是networking中的一个独立节点。

或者,如果你可以检查你的MySQL容器,并获得它的IP,你也可以使用IP,因为它们在同一个networking上。