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.

Docker - Compose

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:

  1. 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
  1. Terapkan izin eksekusi ke biner:
sudo chmod +x /usr/local/bin/docker-compose
  1. 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:

  1. Mulai dari image Python 3.7 Alpine
  2. Set direktori kerja ke /code
  3. Set variabel lingkungan untuk Flask
  4. Instal dependensi yang diperlukan
  5. Salin dan instal dependensi Python
  6. Expose port 5000
  7. Salin direktori saat ini ke dalam kontainer
  8. 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