Sunday, September 9, 2018

Customize Docker Image with docker-commit

Halo Sobat Nostra,

Kali ini saya ingin share tentang kustomisasi sebuah docker image sesuai kebutuhan.
Pada umumnya ketika kita ingin melakukan pada perubahan pada sebuah docker image adalah melakukan perubahan pada dockerfile untuk docker image tersebut. Lalu bagaimana jika tidak mempunyai dockerfile untuk docker image tersebut, karena mungkin kita pull dari docker registry, dan ternyata setelah kita run, ternyata ada hal yang perlu kita ubah atau modifikasi. Solusi untuk masalah ini ada 2, pertama yaitu buat dockerfile nya lagi dari awal agar sesuai dengan kebutuhan, atau bisa juga dengan memanfaatkan docker commit. Dengan docker commit ini, kita akan masuk ke dalam container awal yang akan modifikasi, lalu melakukan perubahan di dalam container sesuai kebutuhan kita.

Lalu bagaimana penggunaan docker commit?

docker commit id_container new_image_name

dimana:
docker commit : command untuk build image baru melalui container
id_container : adalah id container yang telah kita modifikasi
new_image_name : adalah nama image baru yang akan kita pakai atau push ke docker registry

ex:
docker commit b14169723951 new-image

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/ubuntu    latest              2d696327ab2e        2 weeks ago         121.6 MB

root@b14169723951:/# apt update -y
Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]         
Get:4 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [49.7 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]                   
Get:6 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [456 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial/universe Sources [9802 kB]         
Get:8 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.8 kB]
Get:9 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [212 kB]
Get:10 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [2928 B]
Get:11 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB]                                                                           
Get:12 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB]                                                                     
Get:13 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB]                                                                       
Get:14 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB]                                                                       
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/universe Sources [220 kB]                                                                       
Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [823 kB]                                                                     
Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.5 kB]                                                             
Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [689 kB]                                                                 
Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [17.5 kB]                                                             
Get:20 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [5176 B]                                                                   
Get:21 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [6354 B]                                                               
Fetched 24.4 MB in 52s (464 kB/s)                                                                                                                       
Reading package lists... Done
Building dependency tree     
Reading state information... Done
All packages are up to date.
root@b14169723951:/#

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
b14169723951        ubuntu              "/bin/bash"         5 minutes ago       Up 5 minutes                            silly_gates

[root@localhost ~]# docker commit b14169723951 new-image
sha256:a6acd8c852ccc191614fbd1f8182e9f5274eebbe079503da188289e8cbd46c11

[root@localhost ~]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
new-image               latest              a6acd8c852cc        9 seconds ago       160.7 MB
docker.io/ubuntu      latest              2d696327ab2e        2 weeks ago         121.6 MB

Terlihat bahwa image yang baru sudah berhasil di build.

Demikian yang saya share kali ini, semoga bermanfaat.

No comments:

Post a Comment