使用客户端连接到docker网络中的mysql

时间:2019-09-20 20:19:38

标签: mysql docker client

我正在使用docker swarm创建一个具有不同wordpress实例的小型基础架构,我有一个入口(nginx)和不同的堆栈(wp,mysql,wp)。每个堆栈的docker-compose如下:

version: "3.7"

networks:
  foo-frontend:
  foo-backend:

volumes:
  db_data:
  wordpress_data:

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    env_file:
      - db.env
    networks:
      - foo-backend
    ports:
      - "3306:3306"

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - wordpress_data:/var/www/html/wp-content
    env_file:
      - wp.env
    networks:
      - foo-frontend
      - foo-backend

  nginx:
    depends_on:
      - wordpress
    image: nginx:latest
    volumes:
      - ./nginx:/etc/nginx/conf.d
      - /etc/letsencrypt:/etc/letsencrypt
    networks:
      - foo-frontend

当入口为:

version: "3.7"

services:
  nginx:
    image: nginx:latest
    ports:
      - 80:80
      - 443:443
    volumes:
      - ~/docker-vps/ingress/conf.d:/etc/nginx/conf.d
      - /etc/letsencrypt:/etc/letsencrypt
    networks:
      - foo-frontend

networks:
  frontend:
    external: true

我的问题是我无法使用客户端连接到mysql,我试图通过正确的端口使用容器ip,但无法正常工作。...有没有办法通过客户端连接到mysql ?

非常感谢

1 个答案:

答案 0 :(得分:0)

将主机名视为服务的名称。服务就是这样通信的。因此,数据库的主机名是db。让我知道发生的错误消息,因为我没有等级可以评论您的原始问题。