Fundamental Docker #3 - Berinteraksi dengan Docker Image


Selamat datang di tutorial Docker bagian ke-3. Pada bagian ini kita akan mempelajari dan berinteraksi langsung dengan Docker Image. Bagaimana proses mendapatkan Docker Image, menjalankannya dan membuatnya sendiri.









Artikel atau tutorial berjudul Berinteraksi dengan Docker Image ini adalah bagian ke-3 dari seri Tutorial Docker di ChotibulStudio setelah artikel sebelumnya yang berjudul Instalsi Docker Pada Ubuntu. Masih ada beberapa capter atau bagian yang lainnya.





  • Fundamental Docker #1 – Mengenal Teknologi Docker
  • Fundamental Docker #2 – Instalasi Docker Pada Ubuntu
  • Fundamental Docker #3 – Berinteraksi Dengan Docker Image
  • Fundamental Docker #4 – Memanfaatkan DockerHub Sebagai Tempat Menyimpan Docker Image
  • Fundamental Docker #5 – Manajemen Docker Image Dan Kontainer
  • Fundamental Docker #6 – Dockerfile, Konfigurasi Untuk Membangun Docker Image
  • Fundamental Docker #7 – Penggunaan dan Pemanfaatan Volume
  • Fundamental Docker #8 – Dasar-Dasar Jaringan Pada Docker Kontainer
  • Fundamental Docker #9 – Jalankan Proyek Anda Dengan Kontainer Docker (Studi Kasus WordPress)
  • Fundamental Docker #10 – Mengenal Docker Compose
  • Fundamental Docker #11 – Jalakan Proyek Anda Dengan Docker Compose (Studi Kasus WordPress)




Baik. Kita mulai dari mengenal Docker Image. Setelah itu dilanjutkan dengan praktik berinteraksi dengan Docker Image.





Apa itu Docker Image?





Citra atau Docker Image adalah sebuah templat yang bersifat read-only yang terdiri dari beberapa lapisan, dimana masing-masing lapisannya mewakili instruksi pada Dockerfile.





Sedangkan Dockerfile merupakan berkas teks biasa yang berisi perintah dan urutan eksekusi yang diperlukan untuk membangun sebuah citra yang diinginkan. Dengan Dockerfile kita bisa membangun citra kita sendiri dengan bantuan perintah docker build.





Setiap kita menjalankan citra dengan perintah docker run, maka Docker Engine akan membuat kontainer baru.





Memperoleh dan Mengeksekusi Docker Image





Docker Image dapat diperoleh dengan mudah di registry (Docker Hub). Bahkan, Docker sudah dikonfigurasi agar hanya memperoleh citra dari Docker Hub.





Lalu, bagaimana caranya kita memperoleh Docker Image?





Tentu saja dengan menggunakan baris perintah docker di Terminal. Pertama-tama, kita mencoba mencari citra Ubuntu terbaru. Gunakan perintah berikut.





$ docker search ubuntu




Tarik citra Ubuntu terbaru ke mesin lokal kita. Gunakan perintah berikut.





$ docker pull ubuntu

Using default tag: latest
latest: Pulling from library/ubuntu
898c46f3b1a1: Pull complete
63366dfa0a50: Pull complete
041d4cd74a92: Pull complete
6e1bee0f8701: Pull complete
Digest: sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8
Status: Downloaded newer image for ubuntu:latest
$




Hasil keluaran yang ditampilkan oleh Docker setelah mengeksekusi perintah docker pull ubuntu menunjukkan bahwa kita menarik citra dengan tag: latest, tag tersebut adalah tag baku sebagai penanda bahwa citra tersebut adalah citra terbaru. Jalur penarikannya adalah library/ubuntu yang terdiri dari pempat lapis (ditandai dengan penarikan lengkap).





Selain menggunakan perintah docker pull, sebenarnya perintah docker run juga dapat menarik citra, jika citra tersebut belum ada di mesin lokal, dan menjalankannya sekaligus. Mari kita coba menggunakan perintah docker run untuk menarik dan menjalankan citra sekaligus. Agar berbeda, kita akan menggunakan citra Ubuntu dengan tag 16.04. Berikut printahnya.





$ docker run -it ubuntu:16.04

Unable to find image 'ubuntu:16.04' locally
16.04: Pulling from library/ubuntu
34667c7e4631: Pull complete
d18d76a881a4: Pull complete
119c7358fbfc: Pull complete
2aaf13f3eff0: Pull complete
Digest: sha256:58d0da8bc2f434983c6ca4713b08be00ff5586eb5cdff47bcde4b2e88fd40f88
Status: Downloaded newer image for ubuntu:16.04
root@74d27b2a1b34:/#




Hasil eksekusi perintah tersebut kurang lebih sama dengan perintah di atasnya. Perbedaanya, jika menggunakan perintah docker run akan ada pemberitahuan bahwa tidak ada citra 'ubuntu:16.04' di mesin lokal dan secara otomatis akan menarik citra yang diinginkan dari registry ke mesin lokal kita dan kemudian mengeksekusinya.





Jika Anda memerhatikan dengan seksama, ada opsi tambahan yang disertakan pada baris perintah di atas, yaitu -it, opsi tersebut adalah gabungan dari opsi -i dengan -t. Opsi -i memiliki arti interactive sedangkan opsi -t berarti mengalokasikan pseudo-TTY. Jadi maksudnya adalah menjalankan citra ubuntu:16.04 secara interaktif dengan mengalokasikan penggunaan fungsi Terminal.





Nah, sekarang, mari kita lakukan konfigurasi repo dan memasang beberapa paket dari repo yang sudah kita konfigurasikan.





Langkah-langkahnya adalah sebagai berikut:





  1. Lakukan proses update dan upgrade.
  2. Pasang editor teks, misalnya nano.
  3. Ubah konfigurasi repo yang sudah ada dengan repo lokal. Misalnya, Kambing (Universitas Indonesia), Kartolo (Data Utama), Kebo (PENS) atau Buaya (KLAS).
  4. Lakukan proses update dan upgrade.
  5. Pasang beberapa alat tambahan, misalnya htop.
  6. Bersihkan cache paket dengan perintah apt clean.
  7. Keluar dari kontainer yang sedang berjalan, cukup eksekusi perintah exit.




Sampai pada langkah ini, kita sudah memiliki sebuah kontainer yang di dalamnya sudah terkonfigurasi dengan repo lokal dan sudah dilengkapi dengan paket nano sebagai editor teks dan htop sebagai alat untuk monitoring.





Untuk mengetahui penggunaan masing-masing perintah, silahkan eksekusi perintah docker [opsi_perintah] --help. Seperti contoh docker run --help.





Apa selanjutnya?





Bangun Citra Anda Sendiri





Proses pembangunan Docker Image yang dijelaskan di sini memanfaatkan kontainer yang sudah ada dengan menggunakan perintah docker commit.





Perintah docker commit atau docker container commit digunakan untuk membuat citra baru dari perubahan kontainer yang sudah dilakukan sebelumnya.





Adapun format penggunaan perintahnya adalah sebagai beriku:





$ docker commit [opsi] [container_id atau container_name] [repo_name]/[image_name]:[tag, optional]




Format penggunaan perintah docker commit harus dengan menyertakan kontainer ID atau nama kontainer, diikuti dengan nama repo, nama citra, tag dan beberapa opsi. Nama repo harus sesuai dengan nama repo yang ada di Docker Hub, biasanya menggunakan nama pengguna.





Silahkan periksa ID atau nama kontainer denfan perintah berikut:





$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
718eadbc33fc ubuntu:16.04 "/bin/bash" 3 hours ago Exited (0) 2 hours ago lucid_kalam




Setelah mengetahui ID kontainernya eksekusi perintah berikut untuk menghasilkan citra baru.





$ docker commit -a "Chotibul Umam <choumam@umam.my.id>" -m "New Commit 1.0" 718eadbc33fc umam212/myapp:1.0

sha256:35659716f7cb4eb36865692ca662df69151bfa2f5116659e14a59f12e4b61527




Untuk memeriksa citra yang baru saja dibuat, kita bisa memanfaatkan dua perintah di bawah ini:





$ docker images




Atau





$ docker image ls




Hasilnya dari eksekusi perintah di atas kurang lebih seperti di bawah ini:





REPOSITORY       TAG           IMAGE ID      CREATED         SIZE
umam212/myapp 1.0 35659716f7cb 7 minutes ago 168MB
ubuntu 16.04 9361ce633ff1 9 days ago 118MB
ubuntu 18.04 94e814e2efa8 9 days ago 88.9MB
ubuntu latest 94e814e2efa8 9 days ago 88.9MB
hello-world latest fce289e99eb9 2 months ago 1.84kB
seqvence/static-site latest f589ccde7957 3 years ago 191MB




Sampai pada langkah ini, kita sudah dapat berinteraksi dengan Docker Image; menarik citra dari repo, menjalankan citra dan membuat citra dari kontainer.





Sampai jumpa di artikel selanjutnya yang membahas mengenai Pemanfaatan Docker Hub untuk Menyimpan Citra.


Komentar

Postingan populer dari blog ini

Implementasi IPv6 TunnelBroker untuk Server WordPress Self Host

Daftar Rekomendasi Repositori Lokal Debian 11 "Bullseye"

Koneksi Internet Bermasalah di Ubuntu 18.04, Berikut Cara Memperbaikinya