Panduan untuk Pemula: Docker Compose

Halo sana, para maestro Docker masa depan! Saya sangat senang 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 pro.

Docker - Compose

Apa Itu Docker Compose?

Sebelum kita memulai, mari kita 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 sebuah 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 memulai semua layanan dari konfigurasi Anda dengan perintah tunggal.

Instalasi Docker Compose

Sekarang, mari kita 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. Itu termasuk dalam instalasi. Anda dapat melompat ke bagian berikutnya dan melakukan tari kebahagiaan.

Untuk Pengguna Linux

Untuk teman-teman kami Linux, Anda perlu menginstal Docker Compose secara terpisah. Ini cara nya:

  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. Berikan 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 memiliki Docker Compose terinstal, mari kita buat file docker-compose.yml pertama kita. File ini seperti resep untuk aplikasi Anda - itu memberitahu Docker apa bahan (layanan) Anda butuhkan dan bagaimana mempersiapkannya.

Mari kita buat aplikasi web sederhana menggunakan Python Flask dan Redis. Jangan khawatir jika Anda tidak familiar dengan teknologi ini - kita akan menjaga nya sederhana!

Buat direktori baru untuk proyek Anda dan navigasikan ke dalamnya:

mkdir my_first_compose_project
cd my_first_compose_project

Sekarang, mari kita buat file docker-compose.yml kita:

version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"

Mari kitauraikan 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 Redis resmi dari Docker Hub.

Membuat Aplikasi Flask

Sekarang, mari kita 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. Mengatur direktori kerja ke /code
  3. Mengatur variabel lingkungan untuk Flask
  4. Menginstal dependensi yang diperlukan
  5. Menyalin dan menginstal persyaratan Python
  6. Menampilkan port 5000
  7. Menyalin direktori saat ini ke dalam kontainer
  8. Mengatur perintah untuk menjalankan Flask

Membuat File Persyaratan

Akhirnya, kita perlu menentukan dependensi Python kita. Buat file bernama requirements.txt:

flask
redis

Menjalankan Aplikasi Docker Compose

Sekarang untuk bagian yang menarik - menjalankan aplikasi Anda! Di terminal Anda, jalankan:

docker-compose up

Anda seharusnya melihat Docker Compose membangun image Anda dan memulai layanan. Setelah selesai, buka browser Anda dan kunjungi http://localhost:5000. Anda seharusnya melihat pesan "Hello World", dan counter seharusnya dinaikkan setiap kali Anda refresh halaman.

Perintah Docker Compose

Berikut adalah tabel perintah umum Docker Compose:

Perintah Deskripsi
docker-compose up Buat dan mulai 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 Mulai layanan
docker-compose stop Hentikan layanan

Kesimpulan

Selamat! Anda baru saja membuat 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 kuat untuk membangun.

Ingat, belajar Docker dan kontainerisasi seperti belajar memasak - itu memerlukan latihan, tapi sekali Anda menguasai nya, Anda akan dapat membuat resep multi-kontainer kompleks dalam waktu singkat!

Selamat mencipta, para koki Docker masa depan!

Credits: Image by storyset