5 Containerization (Docker)

0

Membuat container Docker untuk aplikasi Anda sendiri

  • Langkah-langkah:
    1. Download dan install Docker di komputer yang akan digunakan sebagai host.
    2. Buat file Dockerfile yang berisi instruksi untuk membuat container, misalnya menentukan base image, menginstall dependensi, meng-copy file-file aplikasi, dan menjalankan aplikasi.
    3. Buat image Docker dari Dockerfile dengan perintah “docker build”.
    4. Jalankan container dari image yang sudah dibuat dengan perintah “docker run”.

Contoh:

  • Membuat container Docker untuk aplikasi Python yang menggunakan Flask dan PostgreSQL:
    1. Buat file Dockerfile dengan isi seperti berikut:Copy codeFROM python:3.8-slim RUN apt-get update && apt-get install -y postgresql-client COPY requirements.txt . RUN pip install -r requirements.txt COPY . . ENV FLASK_APP app.py CMD ["flask", "run", "--host=0.0.0.0"]
    2. Buat image Docker dari Dockerfile dengan perintah “docker build -t myapp:latest .”
    3. Jalankan container dari image dengan perintah “docker run -d -p 5000:5000 myapp:latest”.

Membuat container Docker untuk mengelola database atau server web

  • Langkah-langkah:
    1. Download dan install Docker di komputer yang akan digunakan sebagai host.
    2. Pilih image Docker yang sesuai dengan aplikasi database atau server web yang akan digunakan. Biasanya image tersebut sudah tersedia di Docker Hub atau dapat dibuat sendiri dengan menggunakan Dockerfile.
    3. Jalankan container dari image yang sudah dipilih dengan menentukan volume untuk menyimpan data dan port yang akan digunakan untuk mengakses aplikasi.
    4. Konfigurasikan aplikasi database atau server web sesuai kebutuhan.

Contoh:

  • Membuat container Docker untuk mengelola MySQL:
    1. Cari image Docker MySQL di Docker Hub. Misalnya, image “mysql/mysql-server:8.0” yang merupakan versi MySQL 8.
    2. Jalankan container dari image MySQL dengan menentukan volume untuk menyimpan data dan port yang akan digunakan untuk mengakses MySQL. Contohnya:Copy codedocker run -d -p 3306:3306 -v mysql:/var/lib/mysql mysql/mysql-server:8.0
    3. Konfigurasikan MySQL sesuai kebutuhan, misalnya dengan menentukan password root atau menambahkan database baru.
    4. Membuat pipeline CI/CD untuk aplikasi yang dijalankan di dalam container Docker
  • Langkah-langkah:
    1. Buat atau pilih server continuous integration (CI) yang akan digunakan, misalnya Jenkins, GitLab CI, atau Travis CI.
    2. Buat job atau pipeline di server CI untuk menjalankan tes dan build aplikasi setiap ada perubahan di repository aplikasi.
    3. Tambahkan instruksi untuk membuat image Docker dan push ke registry Docker setelah tes dan build aplikasi berhasil.
    4. Buat server continuous deployment (CD) yang akan digunakan untuk menjalankan container dari image Docker terbaru. Biasanya server CD terhubung ke registry Docker dan akan secara otomatis menjalankan container baru setiap ada image Docker baru yang dipush.
    5. Konfigurasikan server CD sesuai kebutuhan, misalnya menentukan port yang akan digunakan atau menambahkan environment variable.

Contoh:

  • Membuat pipeline CI/CD dengan Jenkins untuk aplikasi Python yang dijalankan di dalam container Docker:
    1. Install Jenkins di komputer yang akan digunakan sebagai server CI.
    2. Buat job di Jenkins yang terhubung ke repository aplikasi Python.
    3. Tambahkan build step untuk menjalankan tes Python dan membuat image Docker. Contohnya:Copy codedocker build -t myapp:${BUILD_NUMBER} . docker push myapp:${BUILD_NUMBER}
    4. Install Docker di komputer yang akan digunakan sebagai server CD.
    5. Buat daemon Docker yang akan secara otomatis menjalankan container baru setiap ada image Docker baru yang dipush ke registry. Contohnya:Copy code{ "labels": [ "com.example.type=web" ], "service": { "name": "web", "image": "myapp:${BUILD_NUMBER}", "ports": [ "5000:5000" ] } }

Membuat sistem rolling update untuk aplikasi yang dijalankan di dalam container Docker

  • Langkah-langkah:
  1. Membuat sistem scaling container sesuai kebutuhan
  • Langkah-langkah:
    1. Buat atau pilih server orchestrator yang akan digunakan, misalnya Kubernetes, Docker Swarm, atau Mesos.
    2. Buat deployment atau service di server orchestrator yang menjalankan container dari image Docker yang diinginkan.
    3. Tentukan replika atau scale yang diinginkan untuk deployment atau service tersebut.
    4. Jalankan deployment atau service tersebut.
    5. Monitor kinerja deployment atau service dan tambah atau kurangi replika atau scale sesuai kebutuhan.

Contoh:

  • Membuat sistem scaling container dengan Kubernetes untuk aplikasi Python yang dijalankan di dalam container Docker:
    1. Install dan konfigurasikan Kubernetes di komputer yang akan digunakan sebagai server orchestrator.
    2. Buat deployment di Kubernetes yang menjalankan container dari image Docker “myapp:latest”. Contohnya:Copy codeapiVersion: apps/v1 kind: Deployment metadata: name: myapp labels: app: myapp spec: replicas: 2 selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: myapp image: myapp:latest ports: - containerPort: 5000
    3. Jalankan deployment di Kubernetes dengan perintah “kubectl apply -f deployment.yml”.
    4. Monitor kinerja deployment dengan perintah “kubectl get pods” dan tambah atau kurangi replika sesuai kebutuhan dengan perintah “kubectl scale deployment myapp –replicas=N”.
0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments