Vous pouvez exécuter Postgres de cette façon (mapper un port) :
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
Vous avez donc mappé le port 5432 de votre conteneur au port 5432 de votre serveur. -p <host_port>:<container_port>
Ainsi, votre postgres est maintenant accessible à partir de votre site Web. public-server-ip:5432
Pour tester : Exécutez la base de données postgres (commande ci-dessus)
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
Allez dans votre conteneur et créez une base de données :
docker exec -it 05b3a3471f6f bash
root@05b3a3471f6f:/# psql -U postgres
postgres-# CREATE DATABASE mytest;
postgres-# \q
Allez sur votre localhost (où vous avez un outil ou le client psql).
psql -h public-ip-server -p 5432 -U postgres
(mot de passe monmotdepassesecret)
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
Vous accédez donc à la base de données (qui est exécutée dans Docker sur un serveur) depuis votre hôte local.
Sur ce poste il est expliqué en détail.
1 votes
Quelle commande avez-vous utilisé pour démarrer postresql ? vous êtes capable d'exposer un port et de le mapper
1 votes
Référez-vous à ce reachmnadeem.wordpress.com/2020/06/02/