Подключиться к сетевому mysql docker контейнеру с локальным клиентом - PullRequest
0 голосов
/ 17 января 2020

Я только что ознакомился с руководством по использованию Docker. Я начал с установки различных контейнеров и, установив mysql, установил его, запустив

docker container run -d -p 3306:3306 --name mysql --env MYSQL_ROOT_PASSWORD=123456 mysql

После того, как контейнер был создан, я смог подключиться к MySQL с Heidi, используя 127.0.0.1, root и 123456 в качестве пароля. В конце концов я продолжил работу над другим учебным пособием по установке WordPress с docker.

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

Ниже приведено описание настройки контейнеров. Все работает просто отлично, но когда дело доходит до подключения к базе данных с помощью 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 голосов
/ 17 января 2020

Вы должны открыть порт 3306 для локальной машины. Затем вы можете подключиться к MySQL, используя host=127.0.0.1.

Обновите файл 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
  ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...