Проброска порта 5432 в docker
Опыт работы с docker пока еще мал. На порте 5432 локальной машины бд, как прокинуть этот порт внутрь контейнера например на порт 1234, чтобы я работая с приложением через docker мог обратиться к локальной бд? Заранее благодарен!
Ответы (2 шт):
Запуская контейнер можно задать маппинг портов [внешний_порт]:[порт_внутри_контейнера] через ключ -p 1234:5432
Например docker run -d -p 1234:5432 postgres
UPD: В запущенный контейнер нельзя вносить изменения, поэтому придется создать новый контейнер, взяв за основу исходный.
- Остановить контейнер
docker stop [имя_контейнера] - Закоммитить контейнер
docker commit [имя_контейнера] [новое_имя_контейнера] - Запустить новый контейнер
docker run -p 1234:5432 -p 5432:5432 [новое_имя_контейнера]
Если тебе из контейнера надо обращаться к базе, которая запущена не в докере, а на хостовой ОС, то на Windows/MacOS используй специальное имя host.docker.internal, которое докер разрезолвит в имя компьютера. Например, host.docker.internal:5432
На Linux, кажется, просто по настоящему имени хоста можно обратиться.