连接到主机mysql时发生Docker错误

连接到主机mysql时发生Docker错误,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,Docker版本17.03.1-ce,内部版本c6d412e 操作系统:Ubuntu 我正在尝试从docker容器连接到主机mysql。但我得到了这个错误 错误:连接ECONREFUSSED 0.0.0.0:3306 如果我使用mysql容器,我会得到同样的mysql。也尝试了127.0.0.1和localhost version: '2' services: ### Applications Code Container #############################

Docker版本17.03.1-ce,内部版本c6d412e 操作系统:Ubuntu

我正在尝试从docker容器连接到主机mysql。但我得到了这个错误

错误:连接ECONREFUSSED 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"

您应该使用主机的IP,而不是使用0.0.0.0、127.0.0.1或localhost。这是因为每个容器都是网络中的单个节点


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

你看到的docker compose ps用于MySQL的端口绑定是什么?0.0.0.0:3306->3306/tcp用于MySQL容器。我更关心的是与docker主机MySQL的连接,创建一个mysql容器只是一次尝试。。我理解。使用以下命令:
172.17.0.1:3306
。该IP对于主机docker是固定的,可以从容器中看到。试一下。不工作。我也正在连接mongo db。它位于另一台服务器上。“成功了!”Sandhu我看到你正在构建mysql。你能提供mysql日志吗<代码>docker编写日志mysql。我怀疑mysql是否正在运行,或者是否绑定到ip。