Docker Image
Docker Image adalah file, terdiri dari
beberapa layer, yang digunakan untuk mengeksekusi kode dalam container
Docker. Sebuah Image pada dasarnya dibangun dari
petunjuk untuk versi lengkap dan eksekusi dari aplikasi, yang bergantung pada
host OS kernel . Saat pengguna Docker
menjalankan sebuah image, image tersebut bisa menjadi satu atau beberapa
instance dari container itu.
Docker adalah platform perangkat
lunak virtualisasi tingkat OS open source yang terutama dirancang untuk Linux,
Windows, dan MacOS. Terkadang memindahkan perangkat lunak dari satu mesin
host ke mesin lain akan menyebabkan masalah karena ketergantungan apa pun yang
mungkin dimiliki perangkat lunak tersebut. Container yang berpindah dari
satu lingkungan Docker ke lingkungan lain dengan OS yang sama akan bekerja
tanpa perubahan apa pun, karena image menyertakan semua dependensi yang
diperlukan untuk mengeksekusi kode. Docker akan menggunakan fitur isolasi
sumber daya di kernel OS, seperti cgroups di Linux, untuk menjalankan beberapa container
independen di OS yang sama.
Penting juga untuk diperhatikan bahwa container berbeda dari mesin virtual (VM), yang merangkum
seluruh OS dengan kode yang dapat dieksekusi di atas layer abstraksi dari sumber
daya perangkat keras fisik.
Host Docker dapat berupa mesin virtual atau fisik yang
menjalankan sistem operasi host. Membangun dan menjalankan kontainer pada
host ditangani oleh daemon Docker.
Kebingungan terkadang terjadi di sekitar image dan container Docker
yang berurusan dengan ruang disk. Ukuran dan ukuran virtual memang
memiliki arti yang berbeda. Ukuran mengacu pada ruang disk yang digunakan
oleh layer yang dapat ditulis di setiap container. Di sisi lain, ruang
disk yang diperlukan untuk container dan layer yang dapat ditulisi disebut
"ukuran virtual". Ini karena layer Image hanya-baca dapat
dibagikan di antara container apa pun yang dimulai dari Image yang sama.
Penggunaan Docker Image
Salah satu kasus penggunaan untuk Docker Image adalah sebagai
perantara antara fungsi Docker lainnya.
Docker
Image menyertakan elemen yang diperlukan untuk menjalankan aplikasi sebagai
container - seperti kode, file config, variabel lingkungan, library, dan run
time. Jika image di-deploy ke lingkungan Docker, image tersebut dapat
dieksekusi sebagai container Docker. Perintah jalankan buruh pelabuhan
akan membuat container dari Image yang diberikan.
Docker
Image juga merupakan aset yang dapat digunakan kembali yang dapat diterapkan di
semua host.
Container Docker vs. Docker Image
Docker Image secara kasar setara dengan "snapshot" di
lingkungan mesin virtual lainnya. Ini adalah catatan mesin virtual Docker,
atau kontainer Docker, pada suatu titik waktu. Pikirkan Docker Image
sebagai Image digital. Container Docker dapat dilihat sebagai cetakan dari
Image itu. Docker Image memiliki karakteristik khusus yang tidak dapat
diubah. Mereka tidak dapat diubah, tetapi dapat digandakan dan dibagikan
atau dihapus. Kekekalan berguna saat menguji perangkat lunak atau
konfigurasi baru karena apa pun yang terjadi, Image akan tetap ada, seperti
biasa.
Image dan layer Docker
Docker Image terdiri dari beberapa layer. Seorang pengguna
menyusun setiap Docker Image untuk menyertakan pustaka sistem, alat, dan file
lain serta dependensi untuk kode yang dapat dieksekusi. Pengembang Image dapat
menggunakan kembali layer Image statis untuk berbagai proyek. Penggunaan
kembali menghemat waktu, karena pengguna tidak harus membuat semuanya dalam Image.
Sebagian
besar Docker Image dimulai dengan Image dasar - meskipun pengguna dapat
membuatnya sepenuhnya dari awal - dengan perintah build. Image server web
Docker juga dapat digunakan untuk membuat container. Setiap Image memiliki satu
layer atas yang dapat dibaca / ditulis di atas layer statis. Layer ditambahkan
ke Image dasar, menyesuaikan dengan kode sehingga dapat dijalankan dalam container.
Setiap layer Docker Image dapat dilihat di bawah / var / lib / docker / aufs /
diff, atau melalui perintah riwayat Docker di antarmuka baris perintah (CLI). Secara
default, Docker menampilkan semua Image layer atas, seperti repositori , tag, dan ukuran file. Layer
perantara disimpan dalam cache, yang membuat layer atas lebih mudah dilihat.
Docker menggunakan driver penyimpanan untuk mengelola konten layer Image.
Saat
container baru dibuat dari Image, layer yang dapat ditulis juga dibuat. Layer
ini disebut layer container, dan ini menghosting semua perubahan yang dilakukan
pada container yang sedang berjalan. Layer ini dapat menyimpan file yang
baru ditulis, modifikasi pada file yang sudah ada dan file yang baru
dihapus. Layer yang dapat ditulis memungkinkan penyesuaian container. Setiap
perubahan yang dibuat pada layer yang dapat ditulis disimpan di layer
itu. Beberapa kontainer dapat berbagi Image dasar yang sama dan memiliki
status datanya sendiri berkat layer yang dapat ditulis.
Repositori Docker Image
Pengguna Docker dapat menyimpan Image dalam repositori pribadi atau
publik , dan dari sana kemudian dapat menerapkan kontainer, menguji Image
dan membagikannya. Docker menawarkan Docker Hub , yang merupakan layanan registri berbasis cloud yang
mencakup repositori Image pribadi dan publik. Ia juga memiliki Docker
Trusted Registry, yang menambahkan fitur manajemen Image dan kontrol akses.
Image resmi telah
diproduksi oleh Docker, sedangkan Image komunitas adalah
Image yang dibuat oleh pengguna Docker. Agen CoScale adalah contoh Docker
Image resmi, yang menyediakan pemantauan ke aplikasi Docker. Contoh Docker
Image komunitas adalah datadog / docker-dd-agent, yang merupakan container Docker
untuk agen di program manajemen log Datadog.
Image
yang sudah ada juga dapat digunakan untuk membuat Image baru. Selain itu,
pengguna dapat mengupload image kustom mereka sendiri ke Docker Hub dengan
menggunakan perintah docker push. Untuk memastikan kualitas Image
komunitas, Docker meninjau Image dan memberikan umpan balik untuk pembuat Image
sebelum menerbitkan. Setelah dipublikasikan, pembuat Image bertanggung
jawab atas pembaruan. Berhati-hatilah saat mengambil Image dari pihak
lain, karena penyerang dapat memperoleh akses ke sistem melalui Image peniru
yang dirancang untuk mengelabui pengguna agar mengira bahwa Image tersebut
berasal dari sumber tepercaya.
Konsep
Image terbaru juga dapat menimbulkan kebingungan. Docker Image yang diberi
tag ": terbaru" belum tentu "terbaru" dalam arti
biasa. Tag terbaru tidak mengacu pada versi Image yang paling baru
didorong. Faktanya, ini hanyalah tag default.
Perintah Docker Image
Menurut Docker, ada sekumpulan perintah Docker Image utama, yang
dikategorikan sebagai perintah anak, beberapa diantaranya:
·
docker image build : Membangun image dari Dockerfile.
·
docker image inspect: Menampilkan informasi pada satu atau lebih
citra.
·
docker image load: Memuat Image dari arsip tar atau aliran
untuk menerima atau membaca input (STDIN).
·
docker image prune: Menghapus Image yang tidak digunakan.
·
docker image pull : Menarik Image atau repositori dari
registri.
·
docker image push : Mendorong Image atau repositori ke
registri.
·
docker image rm: Menghapus satu atau lebih Image.
·
docker image save: Menyimpan satu atau lebih Image ke arsip tar
(dialirkan ke STDOUT secara default).
·
docker image tag: Membuat tag TARGET_IMAGE yang mengacu pada
SOURCE_IMAGE.
CLI
Docker memungkinkan pengguna untuk memulai perintah tertentu yang menyesuaikan Docker
Image. Contoh perintah Docker untuk Image mengikuti:
·
docker history: Menampilkan riwayat Image, termasuk
perubahan yang dilakukan padanya dan layernya.
·
docker update: Memungkinkan pengguna untuk memperbarui
konfigurasi container.
·
docker tag: Membuat tag, seperti target_image, yang memungkinkan pengguna
untuk mengelompokkan dan mengatur Image kontainer.
·
docker search: Mencari di Docker Hub untuk apa pun yang
dibutuhkan pengguna.
·
docker save: Memungkinkan pengguna untuk menyimpan Image
ke arsip.
·
docker compose: Digunakan untuk menangani environment
variable.
Comments
Post a Comment