Membuat image Docker Anda sendiri

Pengantar Docker

Tim Sangster

Software Engineer @ DataCamp

Membuat image dengan Dockerfile

Dockerfile dibuat untuk menghasilkan Docker Image yang saat dijalankan membuat container.

Pengantar Docker

Memulai Dockerfile

Sebuah Dockerfile selalu dimulai dari image lain, ditentukan dengan instruksi FROM.

FROM postgres
FROM ubuntu
FROM hello-world
FROM my-custom-data-pipeline
FROM postgres:15.0
FROM ubuntu:22.04
FROM hello-world:latest
FROM my-custom-data-pipeline:v1
Pengantar Docker

Membangun Dockerfile

Membangun Dockerfile menghasilkan sebuah image.

docker build /location/to/Dockerfile
docker build .
[+] Building 0.1s (5/5) FINISHED
 => [internal] load build definition from Dockerfile
 => => transferring dockerfile: 54B
...
 => CACHED [1/1] FROM docker.io/library/ubuntu
 => exporting to image
 => => exporting layers
 => => writing image sha256:a67f41b1d127160a7647b6709b3789b1e954710d96df39ccaa21..
Pengantar Docker

Memberi nama image

Dalam praktiknya, kita hampir selalu memberi nama image dengan flag -t:

docker build -t first_image .
...
=> => writing image sha256:a67f41b1d127160a7647b6709b3789b1e954710d96df39ccaa21..
=> => naming to docker.io/library/first_image 
docker build -t first_image:v0 .
=> => writing image sha256:a67f41b1d127160a7647b6709b3789b1e954710d96df39ccaa21..
=> => naming to docker.io/library/first_image:v0
Pengantar Docker

Kustomisasi image

RUN <valid-shell-command>
FROM ubuntu
RUN apt-get update
RUN apt-get install -y python3

Gunakan flag -y untuk menghindari prompt:

...
After this operation, 22.8 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Pengantar Docker

Membangun Dockerfile non-trivial

Saat membangun image, Docker benar-benar menjalankan perintah setelah RUN

Menjalankan RUN apt-get update di Docker memakan waktu sama seperti kita menjalankannya sendiri!

root@host:/# apt-get update
Get:1 http://ports.ubuntu.com/ubuntu-ports jammy InRelease [270 kB]
...
Get:17 http://ports.ubuntu.com/ubuntu-ports jammy-security/restricted arm64 Pack..
Fetched 23.0 MB in 2s (12.3 MB/s)                          
Reading package lists... Done
Pengantar Docker

Ringkasan

Penggunaan Instruksi Dockerfile
Mulai Dockerfile dari sebuah image FROM <image-name>
Tambahkan perintah shell ke image RUN <valid-shell-command>
Pastikan tidak butuh input pengguna untuk perintah shell. RUN apt-get install -y python3

Penggunaan Perintah Shell
Build image dari Dockerfile docker build /location/to/Dockerfile
Build image di direktori kerja saat ini docker build .
Pilih nama saat membangun image docker build -t first_image .
Pengantar Docker

Ayo berlatih!

Pengantar Docker

Preparing Video For Download...