Skonfiguruj serwer PostgreSQL i PGADMIN z Dockerem

Skonfiguruj serwer PostgreSQL i PGADMIN z Dockerem
W tym artykule pokażę, jak używać Docker Compose, aby utworzyć kontener PostgreSQL i uzyskać dostęp do PGADMIN 4, internetowego interfejsu administratora PostgreSQL. Pokażę również, jak uzyskać dostęp do serwera bazy danych PostgreSQL działającego w kontenerze Docker z Datagrip IDE. Więc zacznijmy.

Wymagania:

Aby śledzić ten artykuł, musisz zainstalować Docker na swoim komputerze. Linuxhint ma wiele artykułów, które możesz śledzić, aby zainstalować Docker w żądanym dystrybucji Linux, jeśli jeszcze go nie zainstalował. Pamiętaj więc, aby sprawdzić Linuxhint.com na wypadek problemu z instalacją Dockera.

Instalowanie Docker Compose:

Możesz bardzo łatwo pobrać plik binarny Docker za pomocą następującego polecenia:

$ sudo curl -l "https: // github.com/docker/compose/wydania/pobieranie/1.24.1/
Docker-Compose-$ (uname -s)-$ (uname -m) "-o/usr/local/bin/compose

NOTATKA: kędzior nie może być zainstalowane w dystrybucji Linux. W takim przypadku możesz zainstalować Curl z następującym poleceniem:

Ubuntu/Debian/Linux Mint:

$ sudo apt instal curl -y

Centos/Rhel/Fedora:

$ sudo dnf instaluj curl -y

Raz Kompozycja dokera Plik binarny jest pobierany, uruchom następujące polecenie:

$ sudo chmod +x/usr/local/bin/compose

Teraz sprawdź, czy Kompozycja dokera Komenda działa w następujący sposób:

Wersja $ Docker-Compose

Powinien wydrukować informacje o wersji, jak pokazano na zrzucie ekranu poniżej.

Konfigurowanie Dockera komponuj dla projektu:

Teraz utwórz katalog projektu (powiedzmy ~/Docker/PGDEV) Jak następuje:

$ mkdir -p ~/docker/pgdev

Teraz przejdź do katalogu projektu ~/Docker/PGDEV następująco:

$ CD ~/Docker/PGDEV

Teraz stwórz Kompozycja dokera.Yaml plik w katalogu projektu ~/Docker/PGDEV i wpisz w następujących wierszach Kompozycja dokera.Yaml plik.

Wersja: "3.7 "
Usługi:
DB:
Zdjęcie: Postgres: 12.2
Uruchom ponownie: Zawsze
środowisko:
Postgres_db: Postgres
Postgres_user: admin
Postgres_Password: Secret
Pgdata:/var/lib/postgresql/data
wolumeny:
- db-data:/var/lib/postgresql/data
Porty:
- „5432: 5432”
pgadmin:
Zdjęcie: DPage/Pgadmin4: 4.18
Uruchom ponownie: Zawsze
środowisko:
Pgadmin_default_email: [email protected]
Pgadmin_default_password: Secret
PGADMIN_LISTEN_PORT: 80
Porty:
- „8080: 80”
wolumeny:
- pgadmin-data:/var/lib/pgadmin
spinki do mankietów:
- „DB: PGSQL-SERVER”
wolumeny:
DB-DATA:
pgadmin-data:

Kompozycja dokera.Yaml Plik powinien wyglądać w następujący sposób.

Tutaj stworzyłem 2 usługi db I pgadmin.

db Usługa będzie uruchomiła Postgres: 12.2 Zdjęcie (z DockerHub) w kontenerze Docker.

pgadmin Usługa będzie uruchomiła DPAGE/PGADMIN4: 4.18 Zdjęcie (z Dockerhub) w innym kontenerze Docker.

W db usługa, Postgres_db, Postgres_user, Postgres_Password Zmienne środowiskowe są używane do ustawiania domyślnej nazwy bazy danych, nazwy użytkownika administratora i hasła użytkownika administratora odpowiednio dla serwera PostgreSQL. Pgdata Zmienna środowiska służy do konfigurowania serwera PostgreSQL do przechowywania danych /var/lib/postgresql/data katalog kontenera.

W pgadmin usługa, Pgadmin_default_email, Pgadmin_default_password Zmienne środowiskowe służą odpowiednio do ustawienia e -maila logowania i hasła interfejsu internetowego PGADMIN. Pgadmin_listen_port służy do ustawienia portu PGADMIN 80 w pojemniku.

W usłudze DB cała zawartość /var/lib/postgresql/data katalog zostanie zapisany na stałe w db-data tom.

w pgadmin usługa, cała zawartość /var/lib/pgadmin katalog zostanie zapisany na stałe w pgadmin-data tom.

w db serwis, port kontenerowy 5432 (po prawej) jest odwzorowane na port hosta Docker 5432 (lewy).

w pgadmin serwis, port kontenerowy 80 (po prawej) jest odwzorowane na port hosta Docker 8080 (lewy).

w pgadmin usługa, alias nazwy hosta PGSQL-SERVER do db Kontener jest tworzony. Dlatego możesz uzyskać dostęp do serwera PostgreSQL za pomocą PGSQL-SERVER jako nazwa hosta (nie wymaga adresu IP).

Rozpoczęcie PostgreSQL Server i PGADMIN:

Teraz, aby rozpocząć db I pgadmin Usługi, uruchom następujące polecenie:

$ Docker -Compose Up -d

Usługi powinny rozpocząć się w tle.

Jak widać, port 8080 I 5432 są otwarte przez Docker-Proxy praca.

$ sudo netstat -tlpn

Aby zobaczyć, jak mapowane są porty, uruchom następujące polecenie:

$ Docker-Compose Ps

Jak widać, dla db serwis, port hosta Docker 5432 jest odwzorowany na port TCP kontenera 5432.

Dla pgadmin serwis, port hosta Docker 8080 jest odwzorowany na port TCP kontenera 80.

Dostęp do PGADMIN 4 lub PostgreSQL Server z innych komputerów:

Jeśli chcesz uzyskać dostęp do serwera bazy danych PGADMIN 4 lub PostgreSQL z innego komputera w sieci, musisz znać adres IP swojego hosta Docker.

Aby znaleźć adres IP swojego hosta Dockera, uruchom następujące polecenie:

$ ip

W moim przypadku adres IP mojego hosta dokera 192.168.20.160. Będzie dla Ciebie inaczej. Więc upewnij się, że odtąd zastąp go swoim.

Dostęp do PGADMIN z przeglądarki internetowej:

Teraz możesz łatwo uzyskać dostęp do PGADMIN 4 ze swojej przeglądarki internetowej.

Odwiedź http: // localhost: 8080 z hosta Dockera lub http: // 192.168.20.160: 8080 z dowolnego komputera w sieci. Powinieneś zobaczyć stronę logowania PGADMIN. Zaloguj się za pomocą e -maila i hasła.

Po zalogowaniu powinieneś zobaczyć deskę rozdzielczą PGADMIN.

Teraz, aby dodać serwer PostgreSQL działający jako kontener Docker, kliknij prawym przyciskiem myszy Serwery, a potem idź do Tworzyć > Serwer…

w Ogólny Tab, wpisz swój serwer Nazwa.

Teraz idź do Połączenie zakładka i wpisz PGSQL-SERVER Jak Nazwa/adres hosta, 5432 Jak Port, Postgres Jak Baza danych konserwacji, Admin Jak Nazwa użytkownika, sekret Jak Hasło i zaznacz Zapisz hasło? pole wyboru. Następnie kliknij Ratować.

PGADMIN 4 powinien być podłączony do bazy danych PostgreSQL. Teraz możesz pracować z bazą danych PostgreSQL tak bardzo, jak chcesz.

Dostęp do PostgreSQL z Datagrip:

Możesz również uzyskać dostęp do serwera bazy danych PostgreSQL z Datagrip IDE lub dowolnych innych IDES SQL.

W przypadku DataGrip kliknij + z Bazy danych sekcja i przejdź do Źródło danych > PostgreSQL.

Sterownik PostgreSQL nie może być zainstalowany. W takim przypadku kliknij Pobierać.

Sterownik powinien zostać zainstalowany. Teraz wpisz adres IP hosta Docker 192.168.20.160 (w moim przypadku) jako Gospodarz, 5432 jak Port, Admin jak Użytkownik, sekret jak Hasło, Postgres jak Baza danych i kliknij Połączenie testowe.

Powinieneś zobaczyć szczegóły serwera bazy danych PostgreSQL, jeśli wszystko działa.

Teraz kliknij OK.

Teraz możesz zarządzać bazami danych PostgreSQL z Datagrip.

Zatrzymanie PostgreSQL i PGADMIN:

Teraz, aby zatrzymać db I pgadmin Usługi, uruchom następujące polecenie:

$ Docker-Compose Down

db I pgadmin Usługi powinny zostać zatrzymane.

Oczyszczanie danych PostgreSQL i PGADMIN:

Jeśli chcesz usunąć wszystkie dane i ustawienia bazy danych PostgreSQL oraz wszystkie ustawienia PGADMIN, musisz usunąć db-data I pgadmin-data wolumeny.

Rzeczywista nazwa objętości danych można znaleźć za pomocą następującego polecenia:

$ Docker Volume LS

Jak widać, są 2 tomy dla PGDEV projekt, PGDEV_DB-DATA I PGDEV_PGADMIN-DATA.

Możesz usunąć te tomy za pomocą następującego polecenia:

$ Docker Volume rm pgdev_db-data pgdev_pgadmin-data

Bibliografia:

[1] https: // hub.doker.com/_/postgres?tab = opis
[2] https: // hub.doker.com/r/dpage/pgadmin4/
[3] https: // www.pgadmin.ORG/DOCS/PGADMIN4/najnowszy/Contener_DePloyment.html