Docker Compose adalah program Python sederhana yang membantu dalam penyebaran mudah beberapa wadah buruh pelabuhan di server.
Ini menggunakan file YAML sederhana untuk deskripsi layanan.
Alih-alih docker run . . .
baris, Anda bisa menggunakan docker-compose up -d
untuk menerapkan beberapa layanan sekaligus.
Dalam tutorial ini, saya akan menunjukkan cara menginstal Docker Compose di server CentOS. Saya juga akan menunjukkan kepada Anda contoh cepat menggunakan Docker Compose untuk menerapkan server NGINX dengan konfigurasi tertentu.
Menginstal docker-compose di CentOS
Anda perlu menginstal Docker terlebih dahulu. Pastikan untuk menginstal Docker di sistem CentOS Anda sebelum menginstal Docker Compose.
docker-compose tidak dikemas pada repositori resmi CentOS atau repositori rpm docker.
Ada dua cara untuk menginstal Docker Compose di Linux:
- Unduh file penginstal Docker Compose Linux dan atur secara manual
- Gunakan PIP untuk menginstal Docker Compose dengan mudah
Secara pribadi, saya lebih suka menggunakan PIP untuk menginstal Docker Compose. Karena Docker Compose pada dasarnya adalah aplikasi Python, masuk akal untuk menggunakan PIP untuk menginstalnya.
Mari kita lihat bagaimana melakukannya.
Instal pip3
Instal pip3 menggunakan perintah berikut:
sudo dnf install python3-pip
Instal docker-compose menggunakan pip3
Gunakan pip untuk menginstal docker-compose
pip3 install --user docker-compose
Perbarui PATH
pip menginstal docker-compose di ~/.local/bin
direktori. Anda harus menambahkannya ke variabel lingkungan PATH sehingga Anda dapat menjalankannya dari mana saja:
echo 'PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
Jika Anda menggunakan zsh
, ubah .bashrc
ke .zshrc
.
Setelah selesai, gunakan perintah sumber source ~/.bashrc
atau buka kembali terminal (logout dan login kembali jika itu adalah server).
Konfirmasikan docker-compose diinstal menggunakan perintah berikut:
[email protected]:~$ docker-compose --version
docker-compose version 1.26.2, build unknown
Selamat! Anda sekarang telah menginstal docker-compose di server CentOS 8 Anda.
Ingin mengujinya? Ikuti tutorial sederhana ini dan pelajari cara menggunakan Docker Compose.
Terapkan contoh server nginx menggunakan docker-compose
Nginx adalah salah satu server web paling populer, mudah digunakan melalui buruh pelabuhan.
Mari kita bandingkan cara menulis, dan cara non-menulis
Men-deploy Nginx tanpa Docker Compose
Anda dapat menggunakan run
perintah untuk menyebarkan server nginx dengan mudah seperti ini:
docker run --name server --network net -v html:/usr/share/nginx/html -v $PWD/custom-config.conf:/etc/nginx/nginx.conf -p 80:80 --restart on-failure -d nginx:latest
Di sini, Anda telah menerapkan server nginx, dengan nama wadah "server", menggunakan jaringan eksternal "net", memasang volume bernama "html", menggunakan file konfigurasi khusus dan mendengarkan pada port 80 di host, yang akan secara otomatis restart pada kegagalan.
Mari kita bahas masalahnya di sini:
Anda harus membuat jaringan dan volume terlebih dahulu
Docker tidak akan secara otomatis membuat jaringan dan volume. Anda harus membuatnya terlebih dahulu.
Terlalu banyak opsi untuk ditulis setiap saat
Ada terlalu banyak pilihan untuk ditulis. Jika itu adalah wadah yang lebih rumit seperti wadah database atau wadah proxy terbalik atau wadah nextcloud, opsi ini hanya akan bertambah.
Lingkungan pengembangan
Bagaimana jika Anda menguji build Anda dan tidak ingin mempertahankan volume setelah menghentikan penampung? Anda harus menghapus volume dan jaringan secara manual setelahnya.
Men-deploy Nginx dengan Docker Compose
Pertama, Anda harus membuat file penulisan.
Buat direktori bernama "nginx-compose" dan cd ke dalamnya:
mkdir nginx-compose && cd nginx-compose
Buat file bernama "docker-compose.yml" dan tambahkan baris berikut
version: "3.3"
services:
server:
image : "nginx:latest"
container_name: "server"
volumes:
- "html:/usr/share/nginx/html"
- "./custom-config.conf:/etc/nginx/nginx.conf"
networks:
- "net"
ports:
- "80:80"
restart: "on-failure"
volumes:
html:
networks:
net:
File penulisan ini menjelaskan layanan bernama server
, itu akan menyebarkan server nginx dengan konfigurasi yang persis sama seperti yang kita lakukan dengan cara non-compose. Terapkan menggunakan:
docker-compose up -d
docker-compose akan mencari di direktori saat ini untuk file bernama "docker-compose.yml", menguraikannya, dan menyebarkan layanan yang ditentukan di dalamnya.
Mari kita bahas masalah metode non-penulisan sekarang dengan metode penulisan:
- Tidak perlu membuat jaringan dan volume sebelumnya, docker-compose melakukannya untuk Anda. Anda dapat menambahkan volume eksternal dengan menyetel eksternal ke true di setiap volume/jaringan.
- Setelah Anda menulis file .yaml, tidak perlu lagi menuliskan perintah besar-besaran. Anda dapat menyalin file ini ke server lain yang memiliki versi terbaru dari docker-compose yang diinstal dan itu akan berjalan seperti yang diharapkan dengan mudah.
- Anda dapat menggunakan
docker-compose down -v
perintah untuk menghentikan dan menghapus tidak hanya container, tetapi juga semua jaringan dan volume yang dibuat oleh docker-compose. Ini membantu membersihkan di lingkungan pengembangan/pengujian.
Ada banyak manfaat lain menggunakan docker-compose daripada docker run
, terutama dalam produksi, yang berada di luar cakupan artikel hari ini.
Jika Anda ingin melihat sesuatu seperti itu, beri tahu saya di bagian komentar di bawah. Nantikan seri buruh pelabuhan kami untuk panduan lebih lanjut seperti ini.