Можете да стартирате Postgres по този начин (картографирайте порт):
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
Така че сега сте съпоставили порт 5432 на вашия контейнер към порт 5432 на вашия сървър. -p <host_port>:<container_port>
.Така че сега вашият postgres е достъпен от вашия public-server-ip:5432
За тестване:Стартирайте базата данни postgres (команда по-горе)
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
05b3a3471f6f postgres "/docker-entrypoint.s" 1 seconds ago Up 1 seconds 0.0.0.0:5432->5432/tcp some-postgres
Влезте в контейнера си и създайте база данни:
docker exec -it 05b3a3471f6f bash
[email protected]:/# psql -U postgres
postgres-# CREATE DATABASE mytest;
postgres-# \q
Отидете на вашия локален хост (където имате някакъв инструмент или psql клиента).
psql -h public-ip-server -p 5432 -U postgres
(парола mysecretpassword)
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+------------+------------+-----------------------
mytest | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres
Така че имате достъп до базата данни (която се изпълнява в docker на сървър) от вашия локален хост.
В тази публикация е обяснено подробно.