diff --git a/Doc-Docker%2FPostgres.md b/Doc-Docker%2FPostgres.md new file mode 100644 index 0000000..f5601dd --- /dev/null +++ b/Doc-Docker%2FPostgres.md @@ -0,0 +1,64 @@ +# Mise en place d'un serveur PostgreSql + +## Mise en place du conteneur docker : + +Nous allons mettre notre instance Postgres dans un conteneur Docker. + +Pour ce faire il faut récupérer une image PostgreSql. + +``` +docker run --name NomDuContainer -p Host_Port:Container_Port -e POSTGRES_PASSWORD=Mdp_Postgres -d postgres +``` + +* -p : Relie (mapping) le port du conteneur sur un port de la machine hôte. Pour plus de practicité, Host_Port = Container_Port +* -e : Crée une variable d'environnemment +* -d : Démarre le container en mode background + +Verification du lancement du container : + +``` +docker ps -a +``` + + +### Connexion locale : + + +``` +psql -h 127.0.0.1 -p Container_Port -U postgres +``` + +### Connexion distante : + +#### Connexion dans un même réseau : + +Il faut autoriser toutes les connections, pour cela, il faut modifier les adresse d'écoute dans le ficheir de configuration du serveur. + +> Fichier : /var/lib/postgresql/data/postgresql.conf + +Modifier la ligne suivante : + +> listen_addresses = 'localhost' + +> listen_adresses = '*' + +Maintenant, n'importe quelle machine du même réseau ayant l'adresse ip de la machine hôte ainsi que le port peut se connecter au serveur. + +On peut tester : + +``` +psql -h Ip_Machine_Hôte_Privée -p Container_Port -U postgres +``` + +#### Connexion dans des réseaux distincts : + +Pour laisser l'accès depuis l'exterieur (Internet), il faut établir une règle **PAT** du firewall du routeur (box). +Pour cela, il faut rediriger ce qui arrive sur le port **Host_Port** du routeur vers le port **Host_Port** de la machine hebergeant docker ayant pour IP **Ip_Machine_Hôte**. + +Ainsi les utilisateurs peuvent se connecter à distance en utilisant : + +``` +psql -h Ip_Routeur_Publique -p Container_Port -U postgres +``` + +