使用本地客户端连接到联网的MySQL docker容器

时间:2020-01-17 07:21:22

标签: docker docker-compose

我刚刚遵循了有关使用Docker的教程。我开始安装不同的容器,当我使用mysql时,我通过运行

进行安装
docker container run -d -p 3306:3306 --name mysql --env MYSQL_ROOT_PASSWORD=123456 mysql

创建容器后,我可以使用127.0.0.1,root和123456作为密码使用Heidi连接到MySQL。 最终,我继续着另一本关于使用docker安装WordPress的教​​程。

https://www.youtube.com/watch?v=pYhLEV-sRpY

以下是用于设置容器的Yaml。一切都很好,但是当涉及到使用Heidi连接到数据库时,我只是不知道该怎么做-使用什么连接数据或更改yaml中的内容以能够从本地计算机进行连接。

version: '3'

services:
  # Database
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wpsite
  # phpmyadmin
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - '8080:80'
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password 
    networks:
      - wpsite
  # Wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - '8000:80'
    restart: always
    volumes: ['./:/var/www/html']
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  db_data:

1 个答案:

答案 0 :(得分:0)

您应该将3306端口公开给本地计算机。然后,您可以使用host=127.0.0.1连接到MySQL。

像这样更新yaml文件:

version: '3'

services:
  # Database
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wpsite
  ...