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 -yCentOS / RHEL / Fedora:
$ sudo dnf memasang curl -ySekali 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-composeIa 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 psSeperti 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:
$ ipDalam 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 lsSeperti 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