
Docker adalah platform containerization yang memungkinkan Anda membangun, menguji, dan menerapkan aplikasi dengan cepat sebagai container mandiri dan portabel yang dapat dijalankan secara virtual di mana saja.
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 menjelaskan cara menginstal versi terbaru Docker Compose di Debian 10, Buster. Kami juga akan menjelajahi konsep dan perintah Docker Compose dasar.
Prasyarat #
Sebelum melanjutkan, pastikan Anda telah memenuhi prasyarat berikut:
- Masuk sebagai pengguna dengan hak istimewa sudo.
- Anda telah menginstal Docker di mesin Debian 10 Anda.
Menginstal Docker Compose di Debian 10 #
Paket instalasi Docker Compose tersedia di repositori resmi Debian 10, 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.
Gunakan langkah-langkah berikut untuk menginstal versi terbaru Docker Compose di Debian 10:
-
Unduh biner Docker Compose ke dalam
/usr/local/bin
direktori denganwget
ataucurl
: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
-
Gunakan
chmod
untuk membuat biner Compose dapat dieksekusi:sudo chmod +x /usr/local/bin/docker-compose
-
Untuk memverifikasi instalasi, gunakan perintah berikut yang mencetak versi Compose:
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 menyiapkan lingkungan pengembangan WordPress lokal dengan Docker Compose.
Buat direktori untuk proyek dan navigasikan ke dalamnya:
mkdir wordpress_app && cd wordpress_app
Buka editor teks Anda dan buat file bernama docker-compose.yml
:
nano docker-compose.yml
Tempel konten berikut:
docker-compose.ymlversion: '3.7'
services:
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
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:
Mari kita jelaskan kode baris demi baris
Baris pertama 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 membuat wadah terpisah saat Docker Compose dijalankan.
db
layanan:
- Gambar disetel ke
mysql:8.0
gambar. Jika gambar tidak ada, Compose akan menariknya dari repositori publik Docker Hub. Baris dimulai dengancommand
menimpa perintah default. restart: always
policy menginstruksikan Compose untuk memulai ulang penampung jika tidak berfungsi.- Kontainer akan menggunakan volume bernama
db_data
untuk mempertahankan database. - Mendefinisikan variabel lingkungan untuk
mysql:8.0
gambar.
wordpress
layanan:
- Menggunakan
wordpress
gambar. - Pasang
wp_data
direktori pada host ke/var/lib/mysql
di dalam wadah. - Meneruskan port yang terbuka
80
pada wadah ke port8080
di 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, mulai tumpukan WordPress dengan menjalankan perintah berikut:
docker-compose up
Outputnya akan terlihat seperti ini:
...
] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
db_1_99946702ac7e | 2019-12-15T21:37:29.109255Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
...
Docker Compose akan menarik gambar, memulai 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 instalasi WordPress standar.
Pada titik ini, aplikasi WordPress sudah aktif dan berjalan, dan Anda dapat mulai mengerjakannya.
Untuk menghentikan Tulis tekan CTRL+C
.
Anda juga dapat memulai Compose dalam mode terpisah dengan menggunakan -d
pilihan:
docker-compose up -d
Untuk melihat container buruh pelabuhan yang sedang berjalan gunakan perintah berikut:
docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------
wordpress_app_db_1_99946702ac7e docker-entrypoint.sh --def ... Up 3306/tcp, 33060/tcp
wordpress_app_wordpress_1_a428d8408817 docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp
Untuk menghentikan layanan saat Compose berjalan dalam mode terpisah, gunakan:
docker-compose stop
Jika Anda ingin menghapus wadah seluruhnya, gunakan tombol down
pilihan:
docker-compose down
Melewati --volumes
switch juga 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