Docker

Sediakan pelayan PostgreSQL dan pgAdmin dengan Docker

Sediakan pelayan PostgreSQL dan pgAdmin dengan Docker
Dalam artikel ini, saya akan menunjukkan kepada anda cara menggunakan Docker Compose untuk membuat wadah PostgreSQL dan mengaksesnya menggunakan pgAdmin 4, antara muka pentadbir PostgreSQL berasaskan web. Saya juga akan menunjukkan kepada anda cara mengakses pelayan pangkalan data PostgreSQL yang berjalan di wadah Docker dari DataGrip IDE. Oleh itu, mari kita mulakan.

Keperluan:

Untuk mengikuti artikel ini, anda mesti memasang Docker di komputer anda. LinuxHint mempunyai banyak artikel yang boleh anda ikuti untuk memasang Docker pada edaran Linux yang anda inginkan jika anda belum memasangnya. Oleh itu, pastikan anda menyemak LinuxHint.sekiranya anda menghadapi masalah memasang Docker.

Memasang Docker Compose:

Anda boleh memuat turun fail binari Docker Compose dengan mudah dengan arahan berikut:

$ sudo curl -L "https: // github.com / docker / mengarang / melepaskan / memuat turun / 1.24.1 /
docker-compose - $ (uname -s) - $ (uname -m) "-o / usr / local / bin / docker-compose

NOTA: kerinting mungkin tidak dipasang pada edaran Linux anda. Sekiranya demikian, anda boleh memasang curl dengan arahan berikut:

Ubuntu / Debian / Linux Mint:

$ sudo apt install curl -y

CentOS / RHEL / Fedora:

$ sudo dnf memasang curl -y

Sekali dok-tulis fail binari dimuat turun, jalankan arahan berikut:

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

Sekarang, periksa sama ada dok-tulis arahan berfungsi seperti berikut:

versi $ docker-compose

Ia harus mencetak maklumat versi seperti yang ditunjukkan dalam tangkapan skrin di bawah.

Menyiapkan Docker Compose untuk Projek:

Sekarang, buat direktori projek (katakanlah ~ / pelabuhan kapal terbang / pgdev) seperti berikut:

$ mkdir -p ~ / docker / pgdev

Sekarang, arahkan ke direktori projek ~ / pelabuhan / pgdev seperti berikut:

$ cd ~ / docker / pgdev

Sekarang, buat a dok-tulis.keladi fail dalam direktori projek ~ / docker / pgdev dan taip baris berikut di dok-tulis.keladi fail.

versi: "3.7 "
perkhidmatan:
db:
gambar: postgres: 12.2
mulakan semula: selalu
persekitaran:
POSTGRES_DB: postgres
POSTGRES_USER: pentadbir
POSTGRES_PASSWORD: rahsia
PGDATA: / var / lib / postgresql / data
jilid:
- db-data: / var / lib / postgresql / data
pelabuhan:
- "5432: 5432"
 
pgadmin:
gambar: dpage / pgadmin4: 4.18
mulakan semula: selalu
persekitaran:
PGADMIN_DEFAULT_EMAIL: admin @ linuxhint.com
PGADMIN_DEFAULT_PASSWORD: rahsia
PGADMIN_LISTEN_PORT: 80
pelabuhan:
- "8080: 80"
jilid:
- pgadmin-data: / var / lib / pgadmin
pautan:
- "db: pgsql-pelayan"
jilid:
db-data:
pgadmin-data:

The dok-tulis.keladi fail hendaklah seperti berikut.

Di sini, saya telah membuat 2 perkhidmatan db dan pgadmin.

db perkhidmatan akan menjalankan postgres: 12.2 gambar (dari DockerHub) dalam bekas Docker.

pgadmin perkhidmatan akan menjalankan dpage / pgadmin4: 4.18 gambar (dari DockerHub) dalam bekas Docker yang lain.

Dalam db perkhidmatan, yang POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD pemboleh ubah persekitaran digunakan untuk menetapkan nama pangkalan data lalai, nama pengguna admin dan kata laluan pengguna pentadbir untuk pelayan PostgreSQL masing-masing. The PGDATA pemboleh ubah persekitaran digunakan untuk mengkonfigurasi pelayan PostgreSQL untuk menyimpan data / var / lib / postgresql / data direktori bekas.

Dalam pgadmin perkhidmatan, yang PGADMIN_DEFAULT_EMAIL, PGADMIN_DEFAULT_PASSWORD pemboleh ubah persekitaran digunakan untuk menetapkan e-mel masuk dan kata laluan antara muka web pgAdmin. The PGADMIN_LISTEN_PORT digunakan untuk menetapkan port pgAdmin 80 di dalam bekas.

Dalam perkhidmatan db, semua kandungan / var / lib / postgresql / data direktori akan disimpan secara kekal di db-data isi padu.

Di dalam pgadmin perkhidmatan, semua kandungan / var / lib / pgadmin direktori akan disimpan secara kekal di pgadmin-data isi padu.

Di dalam db perkhidmatan, pelabuhan kontena 5432 (kanan) dipetakan ke port host Docker 5432 (dibiarkan).

Di dalam pgadmin perkhidmatan, pelabuhan kontena 80 (kanan) dipetakan ke port host Docker 8080 (dibiarkan).

Di dalam pgadmin perkhidmatan, nama hos alias pelayan pgsql kepada db bekas dibuat. Jadi, anda boleh mengakses pelayan PostgreSQL menggunakan pelayan pgsql sebagai nama host (tidak memerlukan alamat IP).

Memulakan pelayan PostgreSQL dan pgAdmin:

Sekarang, untuk memulakan db dan pgadmin perkhidmatan, jalankan arahan berikut:

$ docker-compose up -d

Perkhidmatan harus bermula di latar belakang.

Seperti yang anda lihat, pelabuhan 8080 dan 5432 dibuka oleh proxy pelabuhan perkhidmatan.

$ sudo netstat -tlpn

Untuk melihat bagaimana port dipetakan, jalankan arahan berikut:

$ docker-mengarang ps

Seperti yang anda lihat, untuk db perkhidmatan, port host Docker 5432 dipetakan ke port TCP kontena 5432.

Untuk pgadmin perkhidmatan, port host Docker 8080 dipetakan ke port TCP kontena 80.

Mengakses pelayan pgAdmin 4 atau PostgreSQL dari Komputer Lain:

Sekiranya anda ingin mengakses pelayan pangkalan data pgAdmin 4 atau PostgreSQL dari komputer lain di rangkaian anda, maka anda mesti mengetahui alamat IP host Docker anda.

Untuk mencari alamat IP host Docker anda, jalankan arahan berikut:

$ ip

Dalam kes saya, alamat IP hos Docker saya 192.168.20.160. Ia akan berbeza bagi anda. Oleh itu, pastikan untuk menggantinya dengan milik anda mulai sekarang.

Mengakses pgAdmin dari Penyemak Imbas Web:

Sekarang, anda boleh mengakses pgAdmin 4 dengan mudah dari penyemak imbas web anda.

Lawati http: // localhost: 8080 dari hos Docker anda atau http: // 192.168.20.160: 8080 dari mana-mana komputer di rangkaian anda. Anda mesti melihat halaman log masuk pgAdmin. Log masuk dengan e-mel dan kata laluan anda.

Setelah anda log masuk, anda akan melihat papan pemuka pgAdmin.

Sekarang, untuk menambahkan pelayan PostgreSQL yang berjalan sebagai wadah Docker, klik kanan pada Pelayan, dan kemudian pergi ke Buat > Pelayan…

Di dalam Am tab, taip pelayan anda Nama.

Sekarang, pergi ke Sambungan tab dan taipkan pelayan pgsql sebagai Nama / alamat hos, 5432 sebagai Pelabuhan, postgres sebagai Pangkalan data penyelenggaraan, pentadbir sebagai Nama pengguna, rahsia sebagai Kata Laluan dan periksa Simpan katalaluan? kotak pilihan. Kemudian, klik pada Jimat.

pgAdmin 4 harus dihubungkan ke pangkalan data PostgreSQL anda. Sekarang, anda boleh menggunakan pangkalan data PostgreSQL sebanyak yang anda mahukan.

Mengakses PostgreSQL dari DataGrip:

Anda juga dapat mengakses pelayan pangkalan data PostgreSQL anda dari DataGrip IDE atau IDE SQL lain.

Sekiranya DataGrip, klik + daripada Pangkalan Data bahagian dan pergi ke Sumber data > PostgreSQL.

Pemacu PostgreSQL mungkin tidak dipasang. Sekiranya berlaku, klik pada Muat turun.

Pemacu harus dipasang. Sekarang, taipkan alamat IP host Docker 192.168.20.160 (dalam kes saya) sebagai Tuan rumah, 5432 sebagai Pelabuhan, pentadbir sebagai Pengguna, rahsia sebagai Kata Laluan, postgres sebagai Pangkalan data dan klik pada Sambungan Ujian.

Anda harus melihat butiran pelayan pangkalan data PostgreSQL jika semuanya berfungsi.

Sekarang, klik pada okey.

Sekarang, anda boleh menguruskan pangkalan data PostgreSQL anda dari DataGrip.

Menghentikan PostgreSQL dan pgAdmin:

Sekarang, untuk menghentikan db dan pgadmin perkhidmatan, jalankan arahan berikut:

$ docker-mengarang

The db dan pgadmin perkhidmatan harus dihentikan.

Membersihkan Data PostgreSQL dan pgAdmin:

Sekiranya anda ingin membuang semua data dan tetapan pangkalan data PostgreSQL, dan semua tetapan pgAdmin, anda mesti membuang db-data dan pgadmin-data isi padu.

Anda boleh mendapatkan nama sebenar jumlah data dengan arahan berikut:

isipadu $ docker ls

Seperti yang anda lihat, ada 2 jilid untuk pgdev projek, pgdev_db-data dan pgdev_pgadmin-data.

Anda boleh membuang jilid ini dengan arahan berikut:

$ volum pelabuhan rm pgdev_db-data pgdev_pgadmin-data

Rujukan:

[1] https: // hab.tukang dok.com / _ / postgres?tab = penerangan
[2] https: // hab.tukang dok.com / r / dpage / pgadmin4 /
[3] https: // www.pgadmin.org / docs / pgadmin4 / terkini / container_deployment.html

Cara Menggunakan Mesin Cheat GameConqueror di Linux
Artikel ini merangkumi panduan mengenai penggunaan mesin cheat GameConqueror di Linux. Ramai pengguna yang bermain permainan di Windows sering menggun...
Emulator Konsol Permainan Terbaik untuk Linux
Artikel ini akan menyenaraikan perisian emulasi konsol permainan popular yang tersedia untuk Linux. Emulation adalah lapisan keserasian perisian yang ...
Distro Linux Terbaik untuk Permainan pada tahun 2021
Sistem operasi Linux telah jauh dari tampilan asal, ringkas dan berasaskan pelayan. OS ini telah berkembang pesat dalam beberapa tahun kebelakangan in...