Docker Compose adalah alat yang memungkinkan Anda untuk mendefinisikan dan mengatur aplikasi Docker multi-kontainer. Ini menggunakan file YAML untuk mengonfigurasi wadah, jaringan, dan volume aplikasi.
Compose dapat digunakan untuk berbagai tujuan. Penerapan aplikasi host tunggal, pengujian otomatis, dan pengembangan lokal adalah kasus penggunaan paling populer untuk Docker Compose.
Tutorial ini akan memandu proses penginstalan versi terbaru Docker Compose di Debian 9. Kami juga akan menjelajahi konsep dan perintah Docker Compose dasar.
Prasyarat #
Pastikan Anda telah memenuhi prasyarat berikut sebelum melanjutkan tutorial ini:
- Masuk sebagai pengguna dengan hak istimewa sudo.
- Sudah menginstal Docker di mesin Debian 9 Anda.
Instal Docker Compose di Debian #
Paket instalasi Docker Compose tersedia di repositori resmi Debian 9 tetapi mungkin tidak selalu versi terbaru. Pendekatan yang disarankan adalah menginstal Docker Compose dari repositori GitHub Docker.
Pada saat penulisan artikel ini, versi stabil terbaru dari Docker Compose adalah versi 1.23.1
. Sebelum mengunduh biner Compose, kunjungi halaman rilis repositori Compose di GitHuband, periksa apakah ada versi baru yang tersedia untuk diunduh.
Lakukan langkah-langkah berikut untuk menginstal versi terbaru Docker Compose di Debian 9:
-
Mulailah dengan mengunduh biner Docker Compose ke dalam
/usr/local/bin
direktori menggunakancurl
berikut ini perintah:sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-
Saat unduhan selesai, berikan izin yang dapat dieksekusi ke biner Compose:
sudo chmod +x /usr/local/bin/docker-compose
-
Verifikasi instalasi dengan mengetik:
docker-compose --version
Outputnya akan terlihat seperti ini:
docker-compose version 1.23.1, build b02f1306
Memulai Penulisan Docker #
Di bagian ini kami akan menunjukkan cara menggunakan Docker Compose untuk mengelola tumpukan WordPress di mesin Debian 9 Anda.
Mulailah dengan membuat direktori untuk proyek dan mengubahnya ke dalamnya:
mkdir wordpress_app
cd wordpress_app
Buka editor teks Anda dan buat file bernama docker-compose.yml
di dalam direktori proyek:
nano docker-compose.yml
Tempel konten berikut:
docker-compose.ymlversion: '3.3'
services:
db:
image: mysql:5.7
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
wordpress:
image: wordpress
restart: always
volumes:
- ./wp_data:/var/www/html
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: password
depends_on:
- db
volumes:
db_data:
wp_data:
Jadi apa fungsi kode di atas?
Pada baris pertama, kami menentukan versi file Compose. Ada beberapa versi format file Compose yang berbeda dengan dukungan untuk rilis Docker tertentu.
Selanjutnya, kita mendefinisikan dua layanan, db
dan wordpress
. Setiap layanan menjalankan satu image dan akan membuat container terpisah saat docker-compose dijalankan.
db
layanan:
- Menggunakan
mysql:5.7
gambar. Jika gambar tidak ada di sistem Anda, Compose akan menariknya dari repositori publik Docker Hub. - Menggunakan restart
always
kebijakan yang akan menginstruksikan penampung untuk selalu memulai ulang. - Membuat volume bernama
db_data
untuk mempertahankan database. - Mendefinisikan variabel lingkungan untuk
mysql:5.7
gambar.
wordpress
layanan:
- Menggunakan
wordpress
gambar. Jika gambar tidak ada di sistem Anda, Compose akan menariknya dari repositori publik Docker Hub. - Menggunakan restart
always
kebijakan yang akan menginstruksikan penampung untuk selalu memulai ulang. - Pasang
wp_data
direktori pada host ke/var/lib/mysql
di dalam wadah. - Meneruskan port 80 yang terbuka pada container ke port 8080 pada mesin host.
- Mendefinisikan variabel lingkungan untuk
wordpress
gambar. depends_on
instruksi mendefinisikan ketergantungan antara dua layanan. Dalam contoh ini,db
akan dimulai sebelumwordpress
.
Dari direktori proyek, jalankan aplikasi WordPress dengan menjalankan perintah berikut:
docker-compose up
Outputnya akan terlihat seperti ini:
...
wordpress_1_70f2f980e1fb | [Mon Nov 19 18:00:31.002748 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.12 configured -- resuming normal operations
wordpress_1_70f2f980e1fb | [Mon Nov 19 18:00:31.002912 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
Compose akan menarik kedua gambar, memulai dua wadah dan membuat wp_data
direktori di direktori proyek Anda.
Masukkan http://0.0.0.0:8080/
di browser Anda dan Anda akan melihat layar penginstalan Wordpress.
Pada titik ini aplikasi WordPress sudah aktif dan berjalan dan Anda dapat mulai mengerjakan tema atau plugin Anda.
Untuk menghentikan Tulis tekan CTRL+C
.
Anda juga dapat memulai Compose dalam mode terpisah dengan meneruskan -d
bendera.
docker-compose up -d
Untuk memeriksa layanan yang berjalan gunakan ps
pilihan:
docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
wordpress_app_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
wordpress_app_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp
Saat Compose berjalan dalam mode terpisah untuk menghentikan layanan, gunakan:
docker-compose stop
Jika Anda ingin menghapus wadah seluruhnya, gunakan tombol down
pilihan:
docker-compose down
Melewati --volumes
switch juga akan menghapus volume data:
docker-compose down --volumes
Menghapus Instalasi Docker Compose #
Jika Anda perlu menghapus Docker Compose, Anda cukup menghapus biner dengan mengetik:
sudo rm /usr/local/bin/docker-compose