Как подключить контейнер MySQL для Docker к серверу node.js или рабочему столу - PullRequest
0 голосов
/ 23 февраля 2019

Iam начинающий в docker и iam, работающий над mysql и node.js Я запускаю MySQL Docker-контейнер как

docker run --name docker-mysql -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:latest

, и результат Docker PS показывает, что MySQL-контейнер работает, и Docker Logs говорит

Процесс инициализации MySQL завершен.Готов к запуску.

как соединиться с этим контейнером в верстаке или в моем приложении

docker ps

Ответы [ 3 ]

0 голосов
/ 23 февраля 2019

Вам нужно выставить порт

Использовать -p или -P

-p привязан к пользовательскому порту, -P случайным образом назначит вам порт.

:latest не нужно добавлять, докер поможет вам добавить.

Последняя команда должна выглядеть следующим образом:

docker run -dit -P --name docker-mysql -e MYSQL_ROOT_PASSWORD=abc123 mysql:latest

Затем используйте xx, чтобы увидеть выставленныепорты:

docker port docker-mysql

Проверьте, какой порт машины сопоставлен с портом 3306 контейнера. Мой результат:

33060/tcp -> 0.0.0.0:32818
3306/tcp -> 0.0.0.0:32819

Теперь вы можете подключиться к этому порту с помощью программного обеспечения или кода.

0 голосов
/ 23 февраля 2019

Попробуйте:

docker run -p 3306:3306 --name docker-mysql -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:latest

Это свяжет порт 3306 на вашем локальном компьютере с образом докера.Вы должны быть в состоянии подключиться к базе данных с локальным хостом и портом 3306 с именем пользователя root и паролем abc123.

Я только что проверил это, и он работает как чудо.

enter image description here


Если вы боретесь с ошибкой:

не удалось подключиться к localhost на 33016 "подробнее= Плагин аутентификации 'caching_sha2_password' не может быть загружен: dlopen (/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): изображение не найдено

Обновите MySQL-верстак.

Если это не сработает, вам нужно добавить native password для пользователя root. Вот как:

  1. Подключитесь к вашему образу докера с помощью bash:

    docker exec -it docker-mysql bash

  2. Войдите в mysql как root

    mysql -user = root --password

  3. Введите пароль для пользователя root (по умолчанию «root», но в данном примере «abc123»)

  4. Наконец, выполните:

    ALTER USER 'root', идентифицированный с mysql_native_password BY 'abc123';

0 голосов
/ 23 февраля 2019

Для разработки лучший способ - подключить контейнер к "основной" сети.

docker run --name docker-mysql --network host -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:latest

Когда вы перейдете в промежуточную / рабочую среду, рассмотрите возможность использования какого-либо решения для оркестровки.

...