Panduan untuk Pemula: Docker Compose
Hai teman-teman yang bakal menjadi maestro Docker! Saya sangat gembira untuk menjadi panduan Anda dalam perjalanan ke dunia Docker Compose. Sebagai seseorang yang telah mengajar ilmu komputer selama tahun tahun, saya telah melihat banyak siswa kesulitan dengan konsep kontainerisasi. Tetapi jangan khawatir! Pada akhir panduan ini, Anda akan mengatur kontainer seperti seorang ahli.
Apa Itu Docker Compose?
Sebelum kita masuk ke detil, mari mulai dari dasar. Bayangkan Anda sedang merencanakan pesta besar (siapa yang tidak menyukai analogi yang bagus?). Anda perlu mengkoordinasi makanan, minuman, musik, dan dekorasi. Docker Compose seperti alat perencanaan pesta Anda, tapi untuk kontainer!
Dalam istilah teknis, Docker Compose adalah alat untuk mendefinisikan dan menjalankan aplikasi Docker multi-kontainer. Ini memungkinkan Anda menggunakan file YAML untuk mengkonfigurasi layanan, jaringan, dan volume aplikasi Anda, kemudian membuat dan menjalankan semua layanan dari konfigurasi Anda dengan perintah tunggal.
Instalasi Docker Compose
Sekarang, mari instal Docker Compose di sistem Anda. Proses ini mudah seperti kue (mmm... kue).
Untuk Pengguna Windows dan Mac
Jika Anda sudah menginstal Docker Desktop, selamat! Anda sudah memiliki Docker Compose. Ini sudah termasuk dalam instalasi. Anda dapat melompat ke bagian berikutnya dan melakukan tari kebahagiaan.
Untuk Pengguna Linux
Untuk teman-teman kami di Linux, Anda perlu menginstal Docker Compose secara terpisah. Berikut adalah cara:
- Unduh rilis stabil saat ini dari Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- Terapkan izin eksekusi ke biner:
sudo chmod +x /usr/local/bin/docker-compose
- Verifikasi instalasi:
docker-compose --version
Jika Anda melihat nomor versi, Anda siap untuk maju!
Membuat File Docker-Compose Pertama
Sekarang kita sudah menginstal Docker Compose, mari buat file docker-compose.yml pertama kita. File ini seperti resep untuk aplikasi Anda - itu memberitahu Docker tentang bahan (layanan) yang Anda butuhkan dan bagaimana mempersiapkannya.
Mari buat aplikasi web sederhana menggunakan Python Flask dan Redis. Jangan khawatir jika Anda tidak familiar dengan teknologi ini - kita akan menjaga hal ini sederhana!
Buat direktori baru untuk proyek Anda dan navigasikan ke dalamnya:
mkdir my_first_compose_project
cd my_first_compose_project
Sekarang, mari buat file docker-compose.yml kita:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
mariuraikan ini:
-
version: '3'
: Ini menentukan versi format file Docker Compose yang kita gunakan. -
services
: Bagian ini mendefinisikan kontainer yang kita ingin jalankan. -
web
: Ini adalah layanan aplikasi Flask kita. -
build: .
: Ini memberitahu Docker untuk membangun image dari Dockerfile di direktori saat ini. -
ports: - "5000:5000"
: Ini memetakan port 5000 di host ke port 5000 di kontainer. -
redis
: Ini adalah layanan Redis kita. -
image: "redis:alpine"
: Ini memberitahu Docker untuk menggunakan image resmi Redis dari Docker Hub.
Membuat Aplikasi Flask
Sekarang, mari buat aplikasi Flask sederhana. Buat file bernama app.py
:
from flask import Flask
from redis import Redis
app = Flask(__name__)
redis = Redis(host='redis', port=6379)
@app.route('/')
def hello():
redis.incr('hits')
return f'Hello World! I have been seen {redis.get("hits").decode("utf-8")} times.'
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
Aplikasi sederhana ini menambahkan counter di Redis setiap kali halaman dikunjungi.
Membuat Dockerfile
Berikutnya, kita perlu membuat Dockerfile untuk membangun aplikasi Flask kita. Buat file bernama Dockerfile
:
FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
EXPOSE 5000
COPY . .
CMD ["flask", "run"]
Dockerfile ini:
- Mulai dari image Python 3.7 Alpine
- Set direktori kerja ke
/code
- Set variabel lingkungan untuk Flask
- Instal dependensi yang diperlukan
- Salin dan instal dependensi Python
- Expose port 5000
- Salin direktori saat ini ke dalam kontainer
- Set perintah untuk menjalankan Flask
Membuat File Requirements
Akhirnya, kita perlu menentukan dependensi Python kita. Buat file bernama requirements.txt
:
flask
redis
Menjalankan Aplikasi Docker Compose
Sekarang ke bagian menarik - menjalankan aplikasi Anda! Dalam terminal Anda, jalankan:
docker-compose up
Anda seharusnya melihat Docker Compose membangun image Anda dan menjalankan layanan. Setelah selesai, buka browser Anda dan kunjungi http://localhost:5000
. Anda seharusnya melihat pesan "Hello World" Anda, dan counter seharusnya meningkat setiap kali Anda refresh halaman.
Perintah Docker Compose
Berikut adalah tabel yang praktis dari beberapa perintah Docker Compose umum:
Perintah | Deskripsi |
---|---|
docker-compose up |
Buat dan jalankan kontainer |
docker-compose down |
Hentikan dan hapus kontainer, jaringan, image, dan volume |
docker-compose ps |
Daftar kontainer |
docker-compose logs |
Lihat output dari kontainer |
docker-compose build |
Bangun atau rebuild layanan |
docker-compose start |
Jalankan layanan |
docker-compose stop |
Hentikan layanan |
Kesimpulan
Selamat! Anda telah menciptakan dan menjalankan aplikasi multi-kontainer pertama Anda menggunakan Docker Compose. Kita hanya menyentuh permukaan dari apa yang Docker Compose bisa lakukan, tapi saya harap panduan ini telah memberikan Anda dasar yang kuat untuk membangun.
Ingat, belajar Docker dan kontainerisasi seperti memasak - itu memerlukan latihan, tapi setelah Anda mendapat kesan, Anda akan membuat resep multi-kontainer kompleks dalam waktu singkat!
Selamat menciptakan, para chef Docker masa depan!
Credits: Image by storyset