Dockerfile
Mata Kuliah Cloud Computing
· Latar Belakang
Dockerfile adalah file teks yang berisi serangkaian instruksi untuk membuat Docker image. Instruksi dalam Dockerfile menentukan bagaimana image akan dibangun, termasuk sistem operasi dasar, dependensi, dan perintah untuk menjalankan aplikasi. Dockerfile merupakan salah satu komponen penting dalam ekosistem Docker yang digunakan untuk membangun Docker image secara otomatis dan terulang (reproducible). Dalam dunia komputasi awan, containerization dengan Docker menjadi teknologi standar untuk mengemas, mendistribusikan, dan menjalankan aplikasi secara konsisten di berbagai lingkungan (development, testing, hingga production).
Berbeda dengan cara manual menggunakan docker commit, Dockerfile menyediakan pendekatan deklaratif berbasis kode (Infrastructure as Code) sehingga proses pembuatan image lebih transparan, mudah dikelola, dan dapat di-versioning menggunakan Git. Praktik ini bertujuan untuk memahami bagaimana Docker memudahkan deployment aplikasi di cloud computing.
· Tujuan Praktikum
1. Menunjukkan penggunaan perintah dasar Docker CLI.
2. Menjelaskan struktur dasar Dockerfile beserta fungsi setiap instruksi (FROM, LABEL, WORKDIR, COPY, ENV, EXPOSE, dan CMD).
3. Membangun Docker image dari Dockerfile menggunakan base image nginx:alpine.
4. Menjalankan container dari image yang telah dibuat dan memverifikasi hasilnya melalui web browser.
· Alat dan Bahan
1. Ubuntu Server
2. Docker Engine
· Langkah-langkah Praktikum dan Command yang Digunakan
- Persiapan Workspace Buat direktori kerja baru agar file Dockerfile tidak bercampur dengan tugas sebelumnya. Buat folder: mkdir proyek-dockerfile-88032024007.
2. Masuk ke folder tersebut: cd proyek-dockerfile-88032024007.
3. Langkah 2: Pembuatan Asset Statis
Buat sebuah file HTML sederhana yang akan menjadi konten utama di dalam image Anda. Buat file index.html yang berisi:
<h1>Tugas Dockerfile Cloud System</h1>
<p>Nama: Muhammad F M</p>
<p>NIM: 88032024007</p>
4. Langkah 3: Penulisan Dockerfile
Buat file dengan nama Dockerfile (tanpa ekstensi) menggunakan text editor
(nano/vim). Masukkan instruksi berikut:
• FROM: Gunakan nginx:alpine sebagai dasar.
• LABEL: Tambahkan label maintainer dengan Nama dan NIM Anda.
• WORKDIR: Tentukan direktori kerja di dalam container ke /usr/share/nginx/html.
Get Fachrulmufti’s stories in your inbox
Join Medium for free to get updates from this writer.
• COPY: Salin file index.html dari komputer lokal ke direktori kerja container.
• ENV: Tambahkan variabel lingkungan APP_STATUS=KULIAH_DEVOPS.
• EXPOSE: Buka port 80.
- CMD: Jalankan perintah untuk memulai Nginx secara foreground.
5. Langkah 4: Proses Building Image
Lakukan proses build untuk mengubah Dockerfile menjadi sebuah Image.
Gunakan perintah: docker build -t web-app-88032024007:v1 .
Pastikan: Proses build berhasil tanpa error pada setiap step-nya.
6. Deployment & Verifikasi
• Jalankan container dari image yang telah Anda buat dan verifikasi hasilnya.
- Jalankan container di port 8082 (Host) ke port 80 (Container). Karena ubuntu saya port 8082 sudah dipakai oleh ruby, maka diganti ke 8088.
- Gunakan perintah docker ps untuk memastikan container statusnya Up.
- Gunakan perintah curl localhost:8088 untuk melihat apakah konten HTML yang Anda buat sudah muncul.
- Gunakan perintah docker inspect [ID_Container] atau docker exec untuk membuktikan variabel ENV yang Anda buat sudah terpasang
• Gunakan perintah docker logs tugas-saya, untuk melihat history build docker
• docker stop tugas-saya, untuk menghentikan container
- docker rm tugas-saya untuk menghapus container
Kesimpulan
Dari praktikum yang telah dilakukan, dapat disimpulkan bahwa Dockerfile adalah cara yang paling efisien dan profesional untuk membangun Docker image. Dengan menggunakan instruksi-instruksi yang tepat, kita dapat membuat image yang ringan, aman, dan mudah di-maintenance. Praktik ini membuktikan bahwa Docker sangat mendukung paradigma cloud computing, khususnya dalam hal portability, scalability, dan consistency antar environment. Mahasiswa menjadi lebih memahami konsep containerization serta mampu mengimplementasikannya untuk aplikasi web sederhana menggunakan Nginx. Dengan keberhasilan menjalankan container pada port 8083 dan berhasil menampilkan halaman HTML statis yang berisi identitas mahasiswa, tujuan praktikum tercapai dengan baik.








