Tutorial ini akan memandu Anda melalui cara menjalankan PostgreSQL dengan penyimpanan persisten di dalam wadah Docker dan menghubungkannya.
PostgreSQL adalah open-source, sistem manajemen database objek-relasional. Sudah ada selama lebih dari 30 tahun dan mengiklankan dirinya sebagai “database relasional open-source paling canggih di dunia.”
Pekerja Buruh telah menjadi standar dalam industri TI untuk mengemas, menyebarkan, dan menjalankan aplikasi terdistribusi dengan mudah. Container Docker memungkinkan Anda menjalankan aplikasi baru dengan cepat tanpa mengacaukan sistem Anda dengan dependensi.
Anda dapat menggunakan Docker untuk menjalankan database PostgreSQL dalam wadah sebagai server jarak jauh. Container Docker didasarkan pada standar terbuka, memungkinkan container berjalan di semua distribusi Linux utama, macOS, dan Microsoft Windows.
Jalankan PostgreSQL di Docker
Kami akan melakukannya di sini untuk mengunduh gambar PostgreSQL, memeriksa apakah gambar sudah siap, menjalankan gambar dengan parameter tertentu, dan akhirnya menghubungkan ke instance PostgreSQL yang sedang berjalan.
1. Tarik Gambar Docker Server PostgreSQL
Pertama, kita perlu mendapatkan gambar resmi PostgreSQL yang ada dari Docker Hub. Gambar tersedia untuk PostgreSQL versi 9, 10, 11, 12, dan 13. Ubah latest
tag ke versi yang diperlukan jika Anda membutuhkan rilis tertentu.
Sekarang mari kita tarik gambarnya:
sudo docker pull postgres:latest
Menggunakan perintah di atas akan menarik PostgreSQL versi terbaru yang tersedia dari repositori Docker Hub.
2. Jalankan Container dari PostgreSQL Server Docker Image
Sebelum men-deploy, Anda harus menyiapkan volume Docker atau bind mount untuk mempertahankan database Anda. Jika tidak, data Anda akan hilang saat penampung dimulai ulang. Pemasangan harus dilakukan ke /var/lib/postgresql/data
direktori dalam wadah.
Kami akan membuat volume buruh pelabuhan untuk panduan ini dan melampirkannya ke wadah PostgreSQL Anda.
Perintah berikut akan membuat volume di mesin lokal Anda, yang dapat Anda sambungkan dengan wadah PostgreSQL nanti:
sudo docker volume create postgres-volume
Sekarang setelah Anda memiliki image PostgreSQL di mesin Anda dan volume untuk menyimpan data, Anda dapat menerapkan container dengan:
sudo docker run -d --name=postgres13 -p 5432:5432 -v postgres-volume:/var/lib/postgresql/data -e POSTGRES_PASSWORD=[your_password] postgres
Perintah docker run akan membuat database PostgreSQL yang berjalan dalam container Docker.
Mari kita uraikan sintaks ini. Pertama, inilah arti setiap parameter dalam perintah itu:
-d
akan menjalankan penampung ini dalam mode terpisah untuk menjalankannya di latar belakang.--name
memberikan namapostgres13
ke instance container Anda.-p
akan mengikat port container PostgreSQL 5432 ke port yang sama pada mesin host Anda. Anda akan dapat terhubung kelocalhost:5432
menggunakan klien PostgreSQL (psql
) berjalan di host Anda.-v
opsi ikat folder data itu di dalam volume wadah (/var/lib/postgresql
) ke volume Docker lokal (postgres-volume
) yang Anda buat di langkah sebelumnya.-e
menetapkan variabel lingkungan. Dalam hal ini, kata sandi root PostgreSQL.postgres
adalah nama gambar yang kita gunakan untuk membuat wadah.
Anda dapat memeriksa apakah container sedang berjalan dengan membuat daftar container yang sedang berjalan:
sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6cb3293fe725 postgres "docker-entrypoint.s…" 19 minutes ago Up 19 minutes 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp postgres13
Selamat! Instance PostgreSQL baru Anda sekarang berjalan di Docker.
Selain itu, Anda dapat memeriksa file log dari container PostgreSQL yang sedang berjalan dengan perintah berikut:
sudo docker logs postgres13
3. Hubungkan ke Server PostgreSQL
Anda bisa mendapatkan shell PostgreSQL interaktif dengan melampirkannya ke wadah dan menjalankan psql
memerintah. Ini menyediakan antarmuka baris perintah PostgreSQL lengkap untuk menggunakan semua perintah dan flag yang sudah dikenal.
sudo docker exec -it postgres13 psql -U postgres
Anda juga dapat terhubung dengan instance PostgreSQL Docker menggunakan psql
Klien PostgreSQL jika Anda sudah menginstalnya di host Anda.
psql -h localhost -U postgres
Kesimpulan
Salah satu kasus penggunaan paling signifikan dalam penggunaan Docker adalah kemudahan membuat dan mengakses aplikasi yang dibangun di dalam container tanpa mengkhawatirkan dependensi dan instalasi.
Dalam tutorial ini, kita belajar tentang menyiapkan server PostgreSQL menggunakan Docker alih-alih mesin host yang sebenarnya.
Dengan arsitektur layanan mikro di mana layanan mikro yang berbeda bergantung pada database mereka, menyebarkan server PostgreSQL sebagai wadah Docker telah menjadi hal biasa.
Ini juga banyak digunakan untuk eksekusi lokal atau pengujian integrasi ujung ke ujung di lingkungan yang terisolasi.
Beri tahu saya jika Anda memiliki pertanyaan atau saran, dan saya akan dengan senang hati menindaklanjutinya dengan Anda.