Docker Composeadalah alat yang memungkinkan Anda untuk mendefinisikan dan menjalankan aplikasi Docker multi-kontainer.
Dengan Compose, Anda menentukan layanan, jaringan, dan volume aplikasi dalam satu file YAML, lalu memutar aplikasi Anda dengan satu perintah.
Compose dapat digunakan untuk berbagai tujuan seperti penerapan aplikasi host tunggal, pengujian otomatis, dan pengembangan lokal.
Tutorial ini memandu Anda dalam menginstal versi terbaru Docker Compose di CentOS 7. Kami juga akan membahas konsep dan perintah Docker Compose dasar.
Prasyarat #
Pastikan Anda memenuhi prasyarat berikut sebelum melanjutkan tutorial ini:
- Masuk sebagai pengguna dengan hak istimewa sudo.
- Sudah menginstal Docker di sistem CentOS 7 Anda.
Instal Docker Compose di CentOS #
Metode yang disarankan untuk menginstal Docker Compose di CentOS 7 adalah dengan mengunduh biner 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.
Selesaikan langkah-langkah berikut untuk menginstal Docker Compose di CentOS 7:
-
Mulailah dengan mengunduh biner Docker Compose ke dalam
/usr/local/bindirektori menggunakancurlberikut 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 -
Setelah unduhan selesai, buat biner tersebut dapat dieksekusi dengan mengetik:
sudo chmod +x /usr/local/bin/docker-compose -
Untuk memverifikasi instalasi ketik perintah berikut untuk 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 menggunakan Docker Compose untuk menjalankan tumpukan WordPress di mesin CentOS 7 Anda.
Mulailah dengan membuat direktori baru untuk proyek dan menavigasi ke dalamnya:
mkdir my_app && cd my_app
Selanjutnya, 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:
Mari kita menganalisis 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 menjalankan satu image dan akan membuat container terpisah saat docker-compose dijalankan.
db layanan:
- Menggunakan
mysql:5.7gambar. Jika gambar tidak ada di sistem Anda, Compose akan menariknya dari repositori publik Docker Hub. - Menggunakan restart
alwayskebijakan yang akan menginstruksikan penampung untuk selalu memulai ulang. - Membuat volume bernama
db_datauntuk membuat database persisten. - Mendefinisikan variabel lingkungan untuk
mysql:5.7gambar.
wordpress layanan:
- Menggunakan
wordpressgambar. Jika gambar tidak ada di sistem Anda, Compose akan menariknya dari repositori publik Docker Hub. - Menggunakan restart
alwayskebijakan yang akan menginstruksikan penampung untuk selalu memulai ulang. - Pasang
wp_datadirektori pada host ke/var/lib/mysqldi dalam wadah. - Meneruskan port 80 yang terbuka pada container ke port 8080 pada mesin host.
- Mendefinisikan variabel lingkungan untuk
wordpressgambar. depends_oninstruksi mendefinisikan ketergantungan antara dua layanan. Dalam contoh ini,dbakan dimulai sebelumwordpress.
Dari direktori proyek, jalankan aplikasi WordPress menggunakan perintah berikut:
docker-compose up Outputnya akan terlihat seperti ini:
...
wordpress_1 | [Sat Oct 13 21:30:48.286382 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.10 configured -- resuming normal operations
wordpress_1 | [Sat Oct 13 21:30:48.286425 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.
Buka browser Anda, ketik http://0.0.0.0:8080/ masuk dan Anda akan melihat layar penginstalan Wordpress.
Pada titik ini, aplikasi WordPress aktif dan berjalan dan Anda dapat mulai mengerjakan tema atau plugin Anda.
Untuk menghentikan Tulis tekan CTRL+C .variabel lingkunganJika Anda ingin memulai Compose dalam mode terpisah, gunakan -d bendera:
docker-compose up -d
Untuk memeriksa layanan yang berjalan gunakan ps pilihan:
docker-compose ps Name Command State Ports
----------------------------------------------------------------------------------
my_app_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
my_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
Untuk menghapus wadah sepenuhnya, gunakan down pilihan:
docker-compose down
Melewati --volumes switch juga akan menghapus volume data:
docker-compose down --volumes Menghapus Instalasi Docker Compose #
Jika Anda ingin menghapus Docker Compose, cukup hapus biner menggunakan perintah berikut:
sudo rm /usr/local/bin/docker-compose