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/bindirektori denganwgetataucurl: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
chmoduntuk 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 --versionOutputnya 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.0gambar. Jika gambar tidak ada, Compose akan menariknya dari repositori publik Docker Hub. Baris dimulai dengancommandmenimpa perintah default. restart: alwayspolicy menginstruksikan Compose untuk memulai ulang penampung jika tidak berfungsi.- Kontainer akan menggunakan volume bernama
db_datauntuk mempertahankan database. - Mendefinisikan variabel lingkungan untuk
mysql:8.0gambar.
wordpress layanan:
- Menggunakan
wordpressgambar. - Pasang
wp_datadirektori pada host ke/var/lib/mysqldi dalam wadah. - Meneruskan port yang terbuka
80pada wadah ke port8080di mesin host. - Mendefinisikan variabel lingkungan untuk
wordpressgambar. depends_oninstruksi mendefinisikan ketergantungan antara dua layanan. Dalam contoh ini,dbakan 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