Penulis artikel, terjemahan yang kami terbitkan hari ini, mengatakan bahwa artikel ini ditujukan untuk para pengembang yang ingin mempelajari Docker Compose dan akan membuat aplikasi server-klien pertama mereka menggunakan Docker. Pembaca seharusnya terbiasa dengan dasar-dasar Docker. Jika ini bukan masalahnya, Anda dapat melihat seri bahan
ini , publikasi
ini , di mana dasar-dasar Docker dibahas bersama dengan dasar-dasar Kubernetes, dan artikel
ini untuk pemula.

Apa itu Susunan Docker?
Docker Compose adalah alat yang disertakan dengan Docker. Ini dirancang untuk menyelesaikan masalah yang terkait dengan penyebaran proyek.
Mempelajari dasar-dasar Docker, Anda mungkin menemukan penciptaan aplikasi sederhana yang bekerja secara mandiri, terlepas dari, misalnya, sumber data eksternal atau layanan tertentu. Dalam praktiknya, aplikasi seperti itu jarang terjadi. Proyek nyata biasanya mencakup seluruh rangkaian aplikasi kolaboratif.
Bagaimana Anda tahu jika Anda perlu menggunakan Docker Compose saat menggunakan proyek? Bahkan - sangat sederhana. Jika beberapa layanan digunakan untuk memastikan berfungsinya proyek ini, maka Docker Compose mungkin berguna. Misalnya, dalam situasi di mana mereka membuat situs web yang, untuk mengotentikasi pengguna, perlu terhubung ke database. Proyek serupa dapat terdiri dari dua layanan - satu yang menyediakan situs, dan satu yang bertanggung jawab untuk memelihara database.
Docker Compose technology, jika dideskripsikan secara sederhana, memungkinkan, dengan satu perintah, untuk meluncurkan banyak layanan.
Perbedaan Antara Docker dan Docker Compose
Docker digunakan untuk mengelola wadah individu (layanan) yang membentuk aplikasi.
Docker Compose digunakan untuk mengelola beberapa wadah sekaligus yang membentuk aplikasi. Alat ini menawarkan fitur yang sama dengan Docker, tetapi memungkinkan Anda bekerja dengan aplikasi yang lebih kompleks.
Docker (wadah tunggal) dan Docker Compose (beberapa wadah)Docker Khas Pembuatan Case
Docker Compose adalah, di tangan kanan, alat yang sangat kuat yang memungkinkan Anda untuk dengan cepat menyebarkan aplikasi dengan arsitektur yang kompleks. Sekarang kita akan melihat contoh penggunaan praktis dari Docker Compose, analisis yang akan memungkinkan Anda untuk mengevaluasi keuntungan yang akan memberi Anda menggunakan Docker Compose.
Bayangkan Anda adalah pengembang proyek web. Proyek ini mencakup dua situs web. Yang pertama memungkinkan orang dalam bisnis untuk membuat, hanya dengan beberapa klik, toko online. Yang kedua ditujukan untuk dukungan pelanggan. Kedua situs ini berinteraksi dengan database yang sama.
Proyek Anda menjadi lebih populer, dan ternyata kekuatan server tempat ia bekerja tidak lagi cukup. Akibatnya, Anda memutuskan untuk mentransfer seluruh proyek ke komputer lain.
Sayangnya, Anda tidak menggunakan sesuatu seperti Docker Compose. Karena itu, Anda harus mentransfer dan mengkonfigurasi ulang layanan satu per satu, berharap bahwa Anda, dalam proses pekerjaan ini, tidak akan melupakan apa pun.
Jika Anda menggunakan Docker Compose, maka mentransfer proyek Anda ke server baru adalah masalah yang dapat diselesaikan dengan menjalankan beberapa perintah. Untuk menyelesaikan transfer proyek ke tempat baru, Anda hanya perlu melakukan beberapa pengaturan dan mengunggah salinan cadangan dari database ke server baru.
Mengembangkan aplikasi klien-server menggunakan Docker Compose
Sekarang Anda tahu untuk apa kami akan menggunakan Docker Compose, sekarang saatnya untuk membuat aplikasi server klien pertama Anda menggunakan alat ini. Yaitu, kita berbicara tentang pengembangan situs web kecil (server) dengan Python, yang dapat menghasilkan file dengan fragmen teks. File ini diminta dari server oleh program (klien), juga ditulis dengan Python. Setelah menerima file dari server, program menampilkan teks yang tersimpan di layar.
Harap perhatikan bahwa kami berharap Anda memiliki dasar-dasar Docker dan Anda sudah menginstal platform Docker.
Mari kita mulai mengerjakan proyek.
▍1. Pembuatan proyek
Untuk membangun aplikasi server-klien pertama Anda, saya sarankan mulai dengan membuat folder proyek. Itu harus berisi file dan folder berikut:
docker-compose.yml
. Ini adalah file Menulis Docker yang akan berisi instruksi yang diperlukan untuk memulai dan mengkonfigurasi layanan.- Folder
server
. Ini akan berisi file yang diperlukan untuk memastikan operasi server. - Folder
client
. Ini akan menjadi file aplikasi klien.
Akibatnya, isi folder utama proyek Anda akan terlihat seperti ini:
. ├── client/ ├── docker-compose.yml └── server/ 2 directories, 1 file
▍2. Pembuatan server
Di sini kita, dalam proses membuat server, akan menyentuh beberapa hal dasar tentang Docker.
2a. Pembuatan file
Buka folder
server
dan buat file-file berikut di dalamnya:
- File
server.py
. Ini akan berisi kode server. - File
index.html
. File ini akan berisi sepotong teks yang harus ditampilkan oleh aplikasi klien. - File
Dockerfile
. Ini adalah file Docker yang akan berisi instruksi yang diperlukan untuk membuat lingkungan server.
Beginilah isi dari
server/
folder Anda seharusnya:
. ├── Dockerfile ├── index.html └── server.py 0 directories, 3 files
2b. Mengedit file Python.
Tambahkan kode berikut ke file
server.py
:
Kode ini memungkinkan Anda membuat server web sederhana. Ini akan memberi klien file
index.html
, yang isinya nanti akan ditampilkan di halaman web.
2c. Pengeditan file HTML
Tambahkan teks berikut ke file
index.html
:
Docker-Compose is magic!
Teks ini akan dikirim ke klien.
2d. Mengedit Dockerfile
Sekarang kita akan membuat
Dockerfile
sederhana, yang akan bertanggung jawab untuk mengatur runtime untuk server Python. Kami akan menggunakan
gambar resmi yang dimaksudkan untuk pelaksanaan program yang ditulis dengan Python sebagai dasar dari gambar yang dibuat. Berikut adalah isi Dockerfile:
Sekarang mari kita bekerja pada klien.
▍3. Penciptaan Pelanggan
Menciptakan bagian klien dari proyek kami, kami akan secara bersamaan mengingat beberapa dasar dari Docker.
3a. Pembuatan file
Buka folder proyek
client
Anda dan buat file-file berikut di dalamnya:
- File
client.py
. Ini akan menjadi kode klien. - File
Dockerfile
. File ini memainkan peran yang sama dengan file serupa di folder server. Yaitu, itu berisi instruksi yang menggambarkan penciptaan lingkungan untuk mengeksekusi kode klien.
Akibatnya,
client/
folder Anda pada tahap kerja ini akan terlihat seperti ini:
. ├── client.py └── Dockerfile 0 directories, 2 files
3b. Pengeditan file python
Tambahkan kode berikut ke file
client.py
:
Berkat kode ini, aplikasi klien dapat mengunduh data dari server dan menampilkannya di layar.
3c. Mengedit Dockerfile
Seperti dalam kasus server, kami membuat
Dockerfile
sederhana untuk klien, yang bertanggung jawab untuk menciptakan lingkungan di mana aplikasi klien Python akan bekerja. Berikut adalah kode
Dockerfile
klien:
▍4. Menulis Docker
Seperti yang mungkin Anda perhatikan, kami menciptakan dua proyek berbeda: server dan klien. Masing-masing dari mereka memiliki
Dockerfile
sendiri. Sampai sekarang, semua yang terjadi tidak melampaui dasar-dasar bekerja dengan Docker. Sekarang kita sedang memulai dengan Docker Compose. Untuk melakukan ini, kita beralih ke file
docker-compose.yml
terletak di folder root proyek.
Harap dicatat bahwa di sini kami tidak mencoba untuk mempertimbangkan sepenuhnya semua perintah yang dapat digunakan di
docker-compose.yml
. Tujuan utama kami adalah memberi Anda contoh praktis yang memberi Anda pengetahuan dasar tentang Docker Compose.
Berikut adalah kode untuk dimasukkan ke
docker-compose.yml
:
▍5. Perakitan proyek
Setelah semua instruksi yang diperlukan dimasukkan dalam
docker-compose.yml
, proyek perlu dirakit. Langkah pekerjaan kami ini menyerupai penggunaan
docker build
, tetapi perintah yang sesuai terkait dengan beberapa layanan:
$ docker-compose build
▍6. Peluncuran proyek
Sekarang proyek sudah selesai, sekarang saatnya untuk meluncurkannya. Langkah pekerjaan kami ini sesuai dengan langkah di mana, ketika bekerja dengan masing-masing kontainer, perintah
docker run
dijalankan:
$ docker-compose up
Setelah menjalankan perintah ini, terminal harus menampilkan teks yang diunduh oleh klien dari server:
Docker-Compose is magic!
.
Seperti yang telah disebutkan, server menggunakan port komputer
1234
untuk melayani permintaan klien. Karena itu, jika Anda masuk ke browser di
http: // localhost: 1234 / , halaman dengan teks
Docker-Compose is magic!
akan ditampilkan di dalamnya
Docker-Compose is magic!
.
Perintah yang Berguna
Mari kita lihat beberapa perintah yang mungkin berguna saat Anda bekerja dengan Docker Compose.
Perintah ini memungkinkan Anda untuk menghentikan dan menghapus wadah dan sumber daya lain yang dibuat oleh
docker-compose up
:
$ docker-compose down
Perintah ini menampilkan log layanan:
$ docker-compose logs -f [service name]
Sebagai contoh, dalam proyek kami ini dapat digunakan dalam bentuk berikut:
$ docker-compose logs -f [service name]
.
Dengan menggunakan perintah ini, Anda dapat membuat daftar kontainer:
$ docker-compose ps
Perintah ini memungkinkan Anda untuk mengeksekusi perintah dalam wadah eksekusi:
$ docker-compose exec [service name] [command]
Sebagai contoh, ini mungkin terlihat seperti ini:
docker-compose exec server ls
.
Perintah ini memungkinkan Anda untuk menampilkan daftar gambar:
$ docker-compose images
Ringkasan
Kami memeriksa dasar-dasar bekerja dengan teknologi Docker Compose, pengetahuan yang akan memungkinkan Anda untuk menggunakan teknologi ini dan, jika Anda mau, untuk memulai studi yang lebih dalam.
Ini adalah repositori dengan kode proyek yang kami ulas di sini.
Pembaca yang budiman! Apakah Anda menggunakan Docker Compose di proyek Anda?
