- Published on
Set Up Postgresql With Docker
- Authors
- Name
- Surya Harahap
- @suryaharahap18
PostgreSQL adalah salah satu database relasional yang populer digunakan dalam pengembangan perangkat lunak. Dengan menggunakan Docker, kita bisa dengan mudah membuat lingkungan pengembangan yang terisolasi untuk PostgreSQL tanpa harus menginstalnya secara langsung di mesin lokal. Pada blog saya akan berbagi/share cara melakukan setup Database PostgreSQL dengan Docker.
Saya berasumsi teman-teman sudah memiliki Docker Desktop
, apabila belum memilikinya teman-teman bisa mendownloadnya terlebih dahulu link berikut ini. Silahkan Download dan mengikuti panduan instalasinya untuk sistem operasi yang teman-teman gunakan.
~ Oke tanpa berlama-lama kita akan setup postgresql di docker. Berikut ini adalah tahapan prosesnya.
Table of Contents
- Memasang PostgreSQL di Docker
- Membuat Container PostgreSQL
- Mengakses PostgreSQL
- Membuat Database Baru PostgreSQL
- Menghentikan dan Menghapus Container
Memasang PostgreSQL di Docker
Hal pertama yang akan kita lakukan adalah membuat dan menjalankan container melalui terminal. Untuk membuat container, pertama kita membutuhkan sebuah image terlebih dahulu. Kita dapat membuat image sendiri menggunakan Dockerfile atau menggunakan image dari official Docker Hub
.
Docker Hub adalah repositori publik yang menyediakan berbagai macam image yang dapat digunakan dengan Docker. Kita hanya perlu menjalankan perintah di bawah ini, Docker akan otomatis mengambil image dari Docker Hub.
# Memastikan docker sudah berjalan di komputer
docker version
# mengunduh atau menarik(pull) image dari docker hub
docker pull postgres
# OR
docker pull postgres:14
# Check image yang sudah di unduh
docker images
Membuat Container PostgreSQL
Setelah kita memiliki image, langkah selanjutnya adalah membuat container menggunakan image yang sudah kita pull dengan perintah berikut di terminal:
docker run --name name-container-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
## Bisa juga dengan perintah berikut
docker run --name learn-postgres -e POSTGRES_USER=surya -e POSTGRES_PASSWORD=mysecretpassword -e POSTGRES_DB=learnpsql -p 5432:5432 -d postgres
Perintah ini akan membuat sebuah container bernama learn-postgres dengan user surya dan password mysecretpassword
. Anda dapat mengganti nama container dan password sesuai kebutuhan Anda.
Untuk memastikan container PostgreSQL sudah berjalan, gunakan perintah:
docker ps --all
# OR
docker container ls --all
Mengakses PostgreSQL
Untuk masuk ke dalam container PostgreSQL, gunakan perintah berikut:
docker exec -it nama-container-postgres bash
# OR
docker exec -it learn-postgres bash
docker exec -it learn-postgres bash
Perintah ini bertujuan untuk menjalankan shell interaktif (bash) di dalam container yang dinamai learn-postgres. Ini memungkinkan Anda untuk masuk ke dalam lingkungan container PostgreSQL secara interaktif, sehingga Anda dapat menjalankan perintah-perintah di dalamnya.
docker exec
: Perintah untuk mengeksekusi perintah di dalam container Docker yang sudah berjalan.it
: Menandakan mode interaktif dan menetapkan terminal untuk berinteraksi dengan shell di dalam container.learn-postgres
: Nama container yang ingin dieksekusi perintah di dalamnya.bash
: Menjalankan shell bash di dalam container tersebut.
Setelah masuk ke dalam shell interaktif di dalam container (
bash
), perintah selanjutnya adalahpsql -U surya --password --db learnpsql
. Ini menjalankan perintahpsql
untuk mengakses database PostgreSQL di dalam container tersebut dengan detail berikut:psql
: Perintah untuk mengakses dan mengelola database PostgreSQL melalui Command Line Interface (CLI) psql.U surya
: Menentukan user yang ingin digunakan untuk masuk ke dalam PostgreSQL, di sini surya adalah nama user yang dipilih.--password
: Opsi ini memberi tahu psql untuk meminta kata sandi secara eksplisit sebelum mengakses database.--db learnpsql
: Menentukan database yang ingin diakses, di sini learnpsql adalah nama database yang akan digunakan untuk diakses atau dikelola.
FYI: PostgreSQL CHEAT SHEET
Membuat Database Baru PostgreSQL
Gunakan perintah CREATE DATABASE
di dalam command line psql untuk membuat database baru. Misalnya, untuk membuat database dengan nama nama_database_baru, jalankan perintah seperti berikut ini:
CREATE DATABASE startupcamp;
Menghentikan dan Menghapus Container
Jika sudah selesai menggunakan PostgreSQL (apabila tidak digunakan), dapat menghentikan dan menghapus container dengan perintah berikut:
# menghentikan postgresql
docker stop nama-container-postgres
# menghapus container postgresql
docker rm nama-container-postgres