W tym artykule omówimy, jak zainstalować postgreSQL i panel pgadmin4 w kontenerze Docker, używając docker-compose.
Zainstalujmy Docker
Ale najpierw musimy zaktualizować pakiety systemu operacyjnego.
apt update
Zainstalujmy niezbędne pakiety i dodajmy nowe repozytorium:
apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Zaktualizujmy pakiety z nowym repozytorium:
apt update
Teraz zainstalujmy samego Dockera.
apt-get install docker-ce docker-ce-cli containerd.io
Sprawdźmy wersję:
docker --version
Sprawdźmy status:
systemctl status docker
Jeśli nie uruchomił się, uruchamiamy go:
systemctl start docker
I dodajemy do autostartu.
systemctl enable docker
Zainstalujmy Docker-Compose
curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Ustawiamy prawa do uruchamiania.
chmod +x /usr/local/bin/docker-compose
Sprawdzamy, jak zainstalował się Docker-Compose:
docker-compose --version
Stwórzmy plik *.yaml dla Docker-Compose.
Aby w przyszłości orientować się w tym, co mamy zainstalowane, stwórzmy osobny folder dla tego projektu w katalogu /home i przejdźmy do niego.
mkdir /home/postgres && cd /home/postgres
Możesz również użyć innego katalogu do umieszczenia tego i innych projektów.
Skorzystamy z repozytorium, aby stworzyć plik docker-compose.yaml pod tym linkiem https://hub.docker.com/_/postgres
Tworzymy plik docker-compose.yaml lub docker-compose.yml,
vim docker-compose.yaml
I dodajemy do niego następujący kod:
version: '3.8'
services:
db_postgres:
image: postgres
container_name: postgres
restart: always
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: root
POSTGRES_DB: test_db
ports:
- "54320:5432"
volumes:
- local_pgdаta:/var/lib/postgresql/data
pgadmin4:
container_name: pgadmin4
image: dpage/pgadmin4
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: root
ports:
- "5050:80"
volumes:
- pgadmin-dаta:/var/lib/pgadmin
volumes:
local_pgdаta:
pgadmin-dаta:
Gdzie:
container_name: nazwa Twojego kontenera;
POSTGRES_USER: Użytkownik dla tworzonej bazy danych;
POSTGRES_PASSWORD: hasło dla użytkownika, którego tworzymy;
POSTGRES_DB: nazwa bazy danych;
PGADMIN_DEFAULT_EMAIL: e-mail/użytkownik do logowania w pgadmin;
PGADMIN_DEFAULT_PASSWORD: hasło dla użytkownika pgadmin;
5050:80: port, na którym działa pgadmin.
Uruchamiamy nasz skrypt (w tym celu musimy znajdować się w katalogu, w którym stworzono nasz plik. W tym przypadku to /home/postgres):
docker-compose up -d
Czekamy na pobranie obrazów i wdrożenie.
Sprawdzamy:
docker-compose ps
lub
docker ps
Teraz do połączenia z bazą danych można użyć IP kontenera z portem 54320 lub nazwy kontenera postgres z portem 54320 (IP:54320 lub postgres:54320)
Aby zobaczyć logi, użyj polecenia:
docker logs -f postgres
Aby skonfigurować pgadmin — otwórz przeglądarkę i przejdź pod adres — http://YOUR_IP_SERVER:5050/ . W szczegółach połączenia jako nazwę hosta podaj nazwę kontenera postgreSQL lub e-mail, który podałeś w PGADMIN_DEFAULT_EMAIL oraz hasło root
Teraz połączymy serwer bazy danych postgreSQL z pgadmin4.
Wprowadzamy dane, które podałeś docker-compose.yaml
Teraz możesz tworzyć bazy postgreSQL w pgadmin4.
Proponujemy również zapoznać się z innymi przydatnymi artykułami: