powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Windows [игнор отключен] [закрыт для гостей] / Не прокидывается порт на БД из контейнера Docker на основной хост (Windows)
9 сообщений из 9, страница 1 из 1
Не прокидывается порт на БД из контейнера Docker на основной хост (Windows)
    #40018120
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Пытаюсь запустить в Docker container Java приложение. БД Mysql стоит на хосте Windows и не получается прокинуть порт из контейнера на неё.
Изначально пробовал это сделать таким образом:
Код: powershell
1.
docker run -it --rm -v E:\Authorization_service_prjct\war_arсhive:/usr/local/tomcat/webapps -p 8888:8080 image


, но в таком случае пробрасывался только порт tomcat и при запуске tomcat (деплоя war архива) сыпались ошибки связанные с MySQL.

Потом прочитал пост в интернете и попробовал сделать как там описывалось:
Код: powershell
1.
docker run -it --network="host" --rm -v E:\Authorization_service_prjct\war_arсhive:/usr/local/tomcat/webapps -p 8888:8080 image


Но это не помогло.
Подскажите как можно сделать?
...
Рейтинг: 0 / 0
Не прокидывается порт на БД из контейнера Docker на основной хост (Windows)
    #40018129
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у тебя MySql тоже в контейнере, то тебе надо запустить их в одном docker network (--network) и из контейнера с tomcat ходить в MySql по имени контейнера с MySql. При этом сам MySql выставлять портами наружу никуда не надо. Лучше всего написать docker-compose.yml чтобы сразу вместе их запускать с нужными настройками.
...
Рейтинг: 0 / 0
Не прокидывается порт на БД из контейнера Docker на основной хост (Windows)
    #40018302
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
Если у тебя MySql тоже в контейнере, то тебе надо запустить их в одном docker network (--network) и из контейнера с tomcat ходить в MySql по имени контейнера с MySql. При этом сам MySql выставлять портами наружу никуда не надо. Лучше всего написать docker-compose.yml чтобы сразу вместе их запускать с нужными настройками.


В том то и дело, что MySql у меня не в контейнере, он у меня на хосте.

авторЕсли у тебя MySql тоже в контейнере, то тебе надо запустить их в одном docker network (--network) и из контейнера с tomcat ходить в MySql по имени контейнера с MySql.
А есть пример как это сделать?
...
Рейтинг: 0 / 0
Не прокидывается порт на БД из контейнера Docker на основной хост (Windows)
    #40018350
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat, собрал mysql container на основе вот этого Dockerfile'а, но пока не могу понять как теперь в это контейнер к бд достучаться?

Пример бы
...
Рейтинг: 0 / 0
Не прокидывается порт на БД из контейнера Docker на основной хост (Windows)
    #40018378
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Не прокидывается порт на БД из контейнера Docker на основной хост (Windows)
    #40018385
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat,
запустил сбилденный mysql image
Код: powershell
1.
docker run -it mysql-image /bin/bash


запустился
Попытался войти в mysql:
Код: powershell
1.
mysql -u root -p


запросил пароль - ввел "root" (другого не знаю) - выдал ошибку:
авторERROR 2002 (HY000): Can't connect to local MySql serve through socket '/var/lib/mysql/mysql.sock'
...
Рейтинг: 0 / 0
Не прокидывается порт на БД из контейнера Docker на основной хост (Windows)
    #40018441
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
В том то и дело, что MySql у меня не в контейнере, он у меня на хосте.

Если у тебя MySql на хосте, то изнутри контейнера к нему надо коннектиться по IP интерфейса docker0.

Код: bash
1.
2.
3.
4.
***@***:~$ ip a show docker0
4: docker0:  mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:0c:21:52:f0 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever

вот, в данном случае надо настраивать свое приложение чтобы в качестве адреса MySql использовался адрес 172.17.0.1

Код: bash
1.
2.
3.
4.
5.
6.
7.
8.
9.
***@***:~$ docker run -it --rm alpine
/ # ping 172.17.0.1 -c 4
PING 172.17.0.1 (172.17.0.1): 56 data bytes
64 bytes from 172.17.0.1: seq=0 ttl=64 time=0.050 ms
64 bytes from 172.17.0.1: seq=1 ttl=64 time=0.138 ms
64 bytes from 172.17.0.1: seq=2 ttl=64 time=0.141 ms
64 bytes from 172.17.0.1: seq=3 ttl=64 time=0.141 ms
--- 172.17.0.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.050/0.117/0.141 ms
...
Рейтинг: 0 / 0
Не прокидывается порт на БД из контейнера Docker на основной хост (Windows)
    #40018463
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat, хост то у меня Windows и команда 'ip' автор"ip" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
...
Рейтинг: 0 / 0
Не прокидывается порт на БД из контейнера Docker на основной хост (Windows)
    #40018469
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
fkthat, хост то у меня Windows и команда 'ip' автор"ip" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

А, ну да, понял. Тогда надо искать где-то в настройках docker-desktop или может быть самого Hyper-V, под каким ip твой виндовс-хост виден из докер-контейнера и для приложения, которому нужен доступ к MySql использовать этот ip для подключения к БД. У меня, просто, докер под линуксом стоит, поэтому сам посмотреть точно где это не могу.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Не прокидывается порт на БД из контейнера Docker на основной хост (Windows)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]