GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment déployer PostgreSQL sur le conteneur Docker

Présentation

PostgreSQL , également appelé Postgres, est un système de gestion de base de données relationnelle objet open source. Les développeurs optent souvent pour cette base de données relationnelle car elle est gratuite, stable et flexible. En fait, PostgreSQL et MySQL sont les systèmes de gestion de bases de données relationnelles les plus populaires.

Aujourd'hui, Postgres est l'une des images Docker les plus utilisées qui s'exécutent dans des conteneurs. La popularité des bases de données conteneurisées est attribuée à la simplicité avec laquelle elles peuvent être déployées. De plus, au lieu d'avoir une base de données centralisée pour de nombreuses applications, les développeurs peuvent consacrer un conteneur PostgreSQL pour chaque application.

Dans ce didacticiel, vous apprendrez à exécuter PostgreSQL sur un conteneur Docker.

Prérequis

  • Accès à une ligne de commande/fenêtre de terminal
  • Un compte utilisateur avec sudo privilèges
  • Une installation Docker existante

Exécuter PostgreSQL sur des conteneurs Docker

Déployer un conteneur Postgres est simple. Vous pouvez trouver l'image Postgres pour créer ces conteneurs de base de données dans le référentiel officiel de Docker.

Ce guide vous montre deux façons de procéder.

La première option utilise Docker Compose , un outil de gestion des applications Docker multi-conteneurs. Vous pouvez utiliser Docker Compose pour configurer Postgres en tant que service s'exécutant à l'intérieur d'un conteneur. Dans ce cas, vous créez un yaml fichier avec toutes les spécifications.

Alternativement, vous pouvez utiliser a commande Docker unique avec toutes les informations nécessaires pour déployer un nouveau conteneur PostgreSQL.

Option 1 :Exécuter Postgres à l'aide de Docker Compose

Pour déployer un conteneur Postgres à l'aide de Docker Compose, cet outil Docker doit être configuré sur votre système.

Si vous êtes un utilisateur Linux et que vous avez besoin d'aide pour la configuration, consultez l'un de nos guides sur l'installation de Docker Compose sur Ubuntu ou comment installer Docker Compose sur CentOS.

1. Pour garantir une installation simple et propre, nous voulons d'abord créer un répertoire de travail nommé postgres et déplacez-vous dans ce répertoire :

mkdir postgres
cd postgres/

2. Ensuite, utilisez Docker Compose pour télécharger l'image Postgres et rendre le service opérationnel. Pour ce faire, créez un nouveau fichier docker-compose.yml fichier avec un éditeur de votre choix (dans cet exemple, nous avons utilisé nano) :

nano docker-compose.yml

3. Ajoutez le contenu suivant au docker-compose fichier :

version: ‘3’
service:
  postgres:
  image: ‘postgres: latest’
  ports:
    - “5432:5432” 

Le fichier de configuration yaml indique qu'il existe un postgres service, construit sur la latest postgres image . Vous pouvez choisir la version la plus récente de Postgres ou spécifier le numéro de version que vous souhaitez utiliser.

Enfin, vous devez définir les ports sur lesquels le conteneur communique. 5432 est le numéro de port par défaut pour PostgreSQL.

4. Enregistrez et quittez le fichier.

5. Maintenant que vous avez le fichier de configuration yaml, vous pouvez démarrer le service postgres et exécutez le conteneur. Utilisez le docker-compose up commande avec le -d possibilité de le mettre en mode détacher (permettant de continuer à exécuter des commandes depuis le shell actuel) :

docker-compose up -d

6. Vous pouvez vérifier les journaux avec la commande :

docker-compose logs -f

Pour revenir au shell, appuyez sur CTRL+C .

Option 2 :exécuter Postgres à l'aide d'une seule commande Docker

Une autre façon de déployer PostgreSQL dans un conteneur consiste à exécuter une seule commande docker.

Vous pouvez télécharger et exécuter un conteneur Postgres en spécifiant toutes les informations nécessaires en une seule commande.

docker run --name [container_name] -e POSTGRES_PASSWORD=[your_password] -d postgres

La commande indique à Docker d'exécuter un nouveau conteneur sous un nom de conteneur particulier, définit le mot de passe Postgres et télécharge la dernière version de Postgres.

Confirmez que votre conteneur PostgreSQL est maintenant opérationnel en demandant à Docker de répertorier tous les conteneurs en cours d'exécution avec :

docker ps

Dans ce guide, nous avons créé un conteneur nommé example et nous pouvons rapidement le localiser parmi d'autres conteneurs en cours d'exécution.

Commencer avec les conteneurs Postgres

Se connecter à Postgres dans le conteneur Docker

Pour entrer dans un conteneur Postgres, vous devez exécuter en utilisant le nom du conteneur et activer psql , l'interface de ligne de commande pour Postgres.

docker exec -it [container_name] psql -U [postgres_user]

Dans l'exemple ci-dessous, nous nous sommes connectés à l'example conteneur en tant que postgres utilisateur.

Créer une base de données

Une fois dans le conteneur Docker Postgres, nous pouvons créer une base de données avec :

create database [db_name];

Connectez-vous à la base de données en tant qu'utilisateur postgres :

\c [db_name]

Une fois la base de données configurée, l'étape suivante consiste à créer un schéma qui vous aide à obtenir une représentation logique de la structure de la base de données :

create schema [db_schema_name]

Ici, vous pouvez créer un tableau et ajouter des données dans le tableau.

create table [table_name] ([field_names] [values])

Ubuntu
  1. Comment installer l'installateur graphique Postgres ?

  2. Comment déployer un conteneur nginx avec Docker sur Linode

  3. Comment exécuter MySQL dans un conteneur Docker

  4. Comment se connecter en SSH à un conteneur Docker

  5. Comment quitter un conteneur Docker

Comment installer le conteneur Ubuntu 22.04 LTS sur Docker

Comment installer PostgreSQL sur Debian 8

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment déployer un conteneur Docker sur AWS Elastic Beanstalk

Comment déployer et gérer un conteneur Docker MongoDB

Comment déployer un conteneur Docker sur Jelastic Cloud