Не удается подключиться к контейнеру docker MYSQL

#mysql #docker

Вопрос:

Я создал образ базы данных MySQL и запустил его в контейнере. Мне бы хотелось, чтобы это было на портах 3406/3407, поэтому я вызываю команду запуска docker следующим образом :

 docker run -d -p 3406:3407 --name db ollyw123/shape-shop-db:latest 
 

Если я посмотрю на свои контейнеры, это будет выглядеть так :

 C:Usersowatkins.ext>docker ps
CONTAINER ID        IMAGE                                                              COMMAND                  CREATED             STATUS              PORTS                                         NAMES
b907f878f82b        ollyw123/shape-shop-db:latest                                      "docker-entrypoint.s…"   12 minutes ago      Up 12 minutes       3306/tcp, 33060/tcp, 0.0.0.0:3406->3407/tcp   db
 

Я бы очень хотел подключиться к своей базе данных сейчас, но, похоже, мой URL-адрес не работает.

Вот как выглядит мой URL-адрес :

 jdbc:mysql://localhost:3406/db
 

Комментарии:

1. Вы перенастроили порт базы данных, используемый контейнером MySQL, чтобы он был 3407 ? В противном случае, я бы ожидал docker run ... -p 3406:3306 ... .

2. я просто экспериментировал с разными номерами портов. Я знаю, что 3306/7 как-то особенный для MySQL, но я просто хотел попробовать его с разными номерами портов

3. Так что используйте .. 3406:3306 , как сказал @Turing85.. И проверьте, как работают порты в докере: docs.docker.com/config/containers/container-networking

4. И, возможно, прочтите введение о портах в целом. Обычно приложение не «волшебным образом открывает порты», но имеет четко определенные порты, и каждый порт имеет четкую функцию.

5. хорошо, я думаю, что так и сделаю . спасибо за советы.

Ответ №1:

Порт mysql по умолчанию 3306 отсутствует 3407 , поэтому вам следует использовать переадресацию портов с 3306

  • docker run -d -p 3406:3306 --name db ollyw123/shape-shop-db:latest