Tutorial Docker— #6 Dockerfile

Seri Belajar Docker dalam Bahasa Indonesia

Ghifari Nur
netSHOOT
6 min readFeb 21, 2021

--

Format dari Dockerfile

Sebelumnya, kita sudah mengetahui arsitektur dari Docker mulai dari Docker client, engine, dan registry.

Nah, dalam Docker engine terdapat container untuk membungkus app yang akan kita running. Tapi sebelum itu, tau ngga isi dari Docker engine?

Docker engine berisikan Dockerfile untuk membangun app (build), Docker image yang berupa app (ship), dan Container untuk menjalankan app terbseut (run).

Dockerfile

Fungsi dari dockerfile yaitu:

  • Kumpulan command untuk menginstruksikan Docker engine
  • Fitur utama untuk berinteraksi dengan Docker
  • Setiap command membentuk suatu layer
  • Setiap layer bisa digunakan ulang oleh Docker (Cache & Reuse)
contoh struktur dockerfile

Supaya kalian paham, gua jabarkan urutan sebagian command dockerfile yang akan kita pelajari

  • Fundamental Instructions
  • Configuration Instructions
  • Execution Instructions

Fundamental Instructions

Menulis kode untuk Docker

Perintah Linux dan Docker Dasar

  • Menunjukkan direktori saat ini
  • Mengurutkan direktori dari A-Z
  • Cari folder CC_Docker berdasarkan tutorial yang gua cantumin direfensi

Catatan:

ls (menampilkan list direktori, posisi horizontal)

-L atau -l (menampilkan list direktori, posisi vertikal)

-d (Menampilkan subdirektori)

tree (menampilkan list dan sublist secara bersamaan)

  • Masuk ke direktori D1, buat sebuah file dengan nama Dockerfile
  • Tambah beberapa command didalam Dockerfile

Catatan:

ARG CODE_VERSION (Versi yang akan kita pakai)

FROM ubuntu:$(CODE_VERSION) (Pull image Ubuntu 20.04 dari Docker hub)

RUN apt-get (Setelah RUN, yaitu command linux biasa secara opsional)

CMD [“bash”] (Bahasa yang dipakai, yaitu bash script)

  • Gunakan Docker build
  • Verifikasi

Configuration Instructions

  • Saatnya kita pindah ke direktori D2 sekaligus membuat file dengan nama Dockerfile
  • Tambah beberapa command didalam Dockerfile

Catatan:

FROM ubuntu:20.04 (mengambil dari image yang kita pull)

RUN mkdir /home/docker_code(direktori yang menjadi tujuan)

  • Gunakan Docker build
  • Menjalankan container dalam Docker

Catatan:

- -name cont_run-env (nama kontainernya)

  • Lihat container yang sedang berjalan
  • Menjalankan image (Ubuntu 20.04) yang berada didalam container cont_run-env
berhasil

Expose Instructions (Nginx Web-server)

  • Saatnya kita pindah ke direktori D6 sekaligus membuat file dengan nama Dockerfile
  • Tambah beberapa command didalam Dockerfile

Catatan:

EXPOSE 80 (Docker port listening, http)

  • Gunakan Docker build
  • Verifikasi
  • Menjalankan container dalam Docker

Catatan:

8080:80 (80 milik Nginx berupa HTTP dan 8080 milik Docker container secara default)

  • Lihat container yang sedang berjalan
  • Silahkan coba menjalankannya lewat browser

Apache Web-server Demo

  • Stop process untuk Nginx sebelum memakai Apache karena web-server ini menggunakan port yang sama(8080:80)
  • Saatnya kita pindah ke direktori D7 sekaligus membuat file dengan nama Dockerfile
  • Tambah beberapa command didalam Dockerfile
  • Gunakan Docker build
  • Verifikasi
  • Menjalankan container dalam Docker

Catatan:

8080:80 (80 milik Nginx berupa HTTP dan 8080 milik Docker container secara default)

  • Lihat container yang sedang berjalan
  • Silahkan coba menjalankannya lewat browser

Have a nice day!

Ghifari Nur Athoillah, Mahasiswa di Program Profesi CCIT-Fakultas Teknik Universitas Indonesia

--

--