Docker Compose adalah tool untuk mendefinisikan dan menjalankan aplikasi Docker multi-container. Misalnya, aplikasi web membutuhkan web server, database, dan runtime bahasa pemrograman.
Docker Compose menggunakan file YAML untuk mengkonfigurasi services. Kemudian dengan satu perintah, semua layanan atau container dibuat dan dijalankan.
Untuk memahami cara kerja Docker Compose kita akan mencoba install WordPress.
Install Docker Compose
Download docker-compose dari GitHub.
1
|
wget https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-linux-x86_64 -O /usr/bin/docker-compose
|
Berikan permission execute.
1
|
chmod +x /usr/bin/docker–compose
|
Uji hasil instalasi.
1
|
docker–compose —version
|
Hasilnya.
1
|
Docker Compose version v2.0.1
|
Install WordPress
Membuat file docker-compose.yml.
1
|
nano docker–compose.yml
|
Masukkan konfigurasinya.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
services:
db:
image: mariadb:latest
volumes:
– db_data:/var/lib/mysql
restart: always
environment:
MARIADB_ROOT_PASSWORD: secret
MARIADB_DATABASE: db_wp
MARIADB_USER: user_wp
MARIADB_PASSWORD: secret_wp
wordpress:
depends_on:
– db
image: wordpress:latest
volumes:
– wordpress_data:/var/www/html
ports:
– “80:80”
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: user_wp
WORDPRESS_DB_PASSWORD: secret_wp
WORDPRESS_DB_NAME: db_wp
volumes:
db_data: {}
wordpress_data: {}
|
Jalankan konfigurasi.
1
|
docker–compose up –d
|
Docker akan download images yang dibutuhkan dari Docker Hub, kemudian membuat Network, Volume, dan Container.
1
2
3
4
5
6
7
8
9
10
|
...
⠿ 373c21a041de Pull complete 13.6s
⠿ 3d1a9ce482cc Pull complete 22.8s
⠿ ecedf97e512c Pull complete 23.1s
[+] Running 5/5
⠿Network root_default Created 0.1s
⠿Volume “root_db_data” Created 0.0s
⠿Volume “root_wordpress_data” Created 0.0s
⠿Container root–db–1 Started 0.9s
⠿Container root–wordpress–1 Started 2.7s
|
Mengecek container yang sedang jalan.
1
|
docker ps
|
Hasilnya.
1
2
3
|
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45b255d68d5e wordpress:latest “docker-entrypoint.s…” About a minute ago Up About a minute 0.0.0.0:80->80/tcp, :::80->80/tcp root–wordpress–1
d9ff05ec8f3d mariadb:latest “docker-entrypoint.s…” About a minute ago Up About a minute 3306/tcp root–db–1
|
Browse http://ipserver atau http://domain untuk melanjutkan instalasi WordPress.
Shutdown dan Cleanup
Untuk menghentikan dan menghapus container dan network digunakan command down.
1
|
docker–compose down
|
Untuk menghapus container, network, dan volumenya (file wordpress dan database) tambahkan opsi –volumes.
1
|
docker–compose down —volumes
|
Selamat mencoba ?