Seringkali kita memerlukan container docker yang menjaga data persistent, sehingga dapat digunakan untuk beragam keperluan dockering. Docker memiliki opsi untuk memilih apakah data disimpan secara persistent di volume docker atau langsung disimpan di komputer host. Berikut adalah tahapan dockering dengan docker-compose dan data persistent MySQL. Volume dalam docker adalah mekanisme docker untuk menyimpan secara persistent data/file di dalam container docker. Kita dapat membuat docker volume di komputer host dan menempelkannya ke container docker.
Berikut adalah contoh file docker-compose.yml
version: '3'
services:
db:
image: mysql:${MYSQL_VERSION}
container_name: mysql-db
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
ports:
- "6033:3306"
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
Konfigurasi docker-compose di atas mendefinisikan 1 data volume bernama "dbdata", yang termount ke container dengan path atau direktori /var/lib/mysql. Path ini adalah direktori default yang digunakan mysql untuk menyimpan data.
Berikutnya kita jalankan command untuk menjalankan Docker container:
$ docker-compose up -d
Output:
Akses ke database
$ docker exec -it mysql-db bash