GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Update Gambar Docker ke Versi Terbaru

Gambar Docker adalah dasar dari wadah Docker. Karena gambar adalah dasarnya, pernahkah Anda bertanya-tanya bagaimana cara memperbarui wadah Docker ketika versi baru dari sebuah gambar dirilis?

Tidak heran lagi! Dalam tutorial ini, Anda akan mempelajari cara memperbarui repositori image Docker lokal Anda dan memperbarui container Anda ke versi baru tanpa mengacaukan segalanya!

Prasyarat

Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki yang berikut:

  • Lingkungan Linux – Tutorial menggunakan Linux (Ubuntu Focal) untuk menjalankan Docker, tetapi Anda juga dapat menerapkan langkah-langkah umum yang sama untuk Windows atau macOS.
  • Instal mesin Docker 20.10.8 (Linux) atau desktop Docker 3.5.2 (macOS dan Windows).

Menjalankan Gambar Docker Idempoten

Gambar Docker berisi semua perangkat lunak yang diperlukan untuk menjalankan aplikasi yang terkait dengannya, termasuk paket dan dependensi OS. Docker merakit gambar melalui instruksi dalam file yang disebut Dockerfile , yang berisi petunjuk penginstalan idempoten.

Sebuah instruksi idempoten menyiratkan bahwa gambar yang dihasilkan dari mengeksekusi instruksi instalasi akan selalu menghasilkan output yang sama.

Keuntungan membangun gambar idempoten adalah gambar tersebut tidak bergantung pada sistem:gambar yang dihasilkan akan selalu sama. Eksekusi container juga akan selalu sama, di mana pun eksekusi dilakukan.

Versi image baru biasanya menyiratkan beberapa perbaikan pada instruksi untuk membangun basis container Docker, misalnya:

  • Versi yang lebih baru dari kode sumber aplikasi dapat menggantikan yang lama;
  • Manajemen dependensi yang lebih baik:lebih sedikit ruang yang dibutuhkan atau kinerja yang lebih baik;
  • Keamanan yang lebih baik:gambar memiliki patch keamanan untuk menghindari kerentanan.

Untuk mendapatkan manfaat terakhir dari pembaruan apa pun di image Docker, Anda perlu mengetahui cara memperbaruinya dan menerapkan pembaruan tersebut ke container Anda.

Memperbarui gambar Docker Lokal

Untuk memulainya, mulailah dengan memperbarui image Docker lokal. Aplikasi dalam contoh python container menjalankan aplikasi kode Python. Memperbarui image Docker lokal berarti aplikasi dapat mengandalkan image yang baru diperbarui.

Anda harus terlebih dahulu mengetahui gambar mana yang saat ini tersedia di lingkungan lokal Anda. Jalankan perintah berikut untuk memeriksa gambar lokal Anda. TAG kolom menunjukkan versi gambar yang tersedia.

docker images

Sekarang setelah Anda memiliki gambar versi lokal, Anda kemudian harus menemukan gambar terbaru yang tersedia di registri jarak jauh. Ada beberapa registri Docker jarak jauh (repositori gambar Docker) yang diminta oleh mesin Docker untuk memperbarui gambar lokal Anda. Docker menarik gambar dari DockerHub secara default, tetapi ada beberapa alternatif, kebanyakan dari mereka pribadi. Beberapa repositori alternatif tercantum di bawah ini.

  • Galeri Publik ECR Layanan Web Amazon (AWS)
  • Sonatipe Nexus
  • Pelabuhan VM

Navigasikan melalui halaman repositori dan cari gambar yang Anda inginkan:gambar Python resmi yang akan Anda perbarui sebagai contoh. Ketik python untuk menemukan gambar yang diinginkan di DockerHub, dan buka untuk menemukan tag yang tersedia. Contoh untuk tutorial ini adalah gambar Python.

Setiap tag juga memiliki tanggal push. Tanggal push adalah tanggal saat gambar diunggah ke registri. Perhatikan gambar tag dan nama , yang keduanya akan Anda perlukan dalam langkah-langkah berikut.

Sekarang setelah Anda memiliki tag versi yang lebih baru, sekarang saatnya untuk memperbarui gambar. Untuk memperbarui ke gambar yang lebih baru, Anda harus terlebih dahulu menarik versi baru. Jalankan docker pull perintah diikuti dengan titik dua dan nama dan tag dari gambar yang lebih baru:nama dan tag yang Anda catat sebelumnya. Nama dan tag untuk contohnya adalah python:slim-buster . Perintah lengkap dan output yang dihasilkan ditunjukkan di bawah ini.

docker pull python:slim-buster 

TUntuk menarik gambar dari registri gambar Docker non-default (DockerHub), Anda harus memberikan URI gambar lengkap sebagai gantinya. Misalnya:untuk menarik Python dari (AWS) ECR Public Gallery, jalankan dockerpull public.ecr.aws/bitnami/python:3.7

Mempelajari Cara Memperbarui Kontainer Docker

Setelah Anda membuat wadah, gambar wadah tidak dapat diubah. Karena image tidak dapat diubah, Anda tidak dapat benar-benar memperbarui container yang sedang berjalan. Yang Anda lakukan adalah membuat ulang container yang sedang berjalan dengan container pengganti menggunakan versi gambar yang lebih baru.

Karena Anda sudah memiliki versi yang lebih baru, saatnya untuk membuat ulang penampung dengan gambar lama yang perlu diperbarui.

Untuk menemukan container mana yang perlu Anda buat ulang, buat daftar container yang ada yang menjalankan image lama. docker ps perintah daftar kontainer. Dengan --filter flag, Anda menentukan wadah mana yang akan dicantumkan. Ada beberapa opsi yang tersedia untuk pemfilteran, dan ancestor filter bendera dengan gambar yang digunakan sebagai dasar untuk membangun wadah. Wadah awal dalam contoh adalah untuk Python 3.7.2, yang akan Anda terapkan sebagai filter. -a sakelar menunjukkan semua wadah yang tersedia.

docker ps -a --filter "ancestor=python:3.7.2"

Anda dapat menggunakan output docker ps sebagai input untuk menjalankan docker stop perintah pada semua wadah yang terdaftar. Bendera -q disertakan, jadi perintah listing hanya mengembalikan ID kontainer. Output dari perintah tersebut adalah daftar ID container yang dihentikan.

docker stop $(docker ps -aq  --filter "ancestor=python:3.7.2")

Setelah menghentikan container, Anda perlu meminta Docker untuk menghapusnya secara efektif dari sistem sebelum menghapus image yang sudah usang.

docker rm $(docker ps -aq --filter "ancestor=python:3.7.2")

Setelah menghapus semua wadah yang terkait dengan gambar yang tidak digunakan lagi, Anda dapat menghapus gambar lama dengan docker rmi perintah.

docker rmi python:3.7.2

Membuat Wadah Baru dengan Gambar Pembaruan

Sekarang saatnya untuk mengganti container lama, yang sebelumnya dihapus, dengan container baru berdasarkan gambar yang diperbarui. Kali ini, Anda akan membuat wadah menggunakan versi gambar yang lebih baru. Karena wadahnya idempoten, Anda dapat mengharapkan semuanya berfungsi seperti sebelumnya.

Jalankan wadah baru dengan docker run perintah dan nama dan tag dari gambar yang diperbarui yang akan dibutuhkan wadah. Dalam contoh ini, -it flag memberitahu Docker untuk menjalankan container dalam mode interaktif, sehingga Anda dapat menjalankan perintah di dalam container untuk memverifikasi fungsionalitas yang diperbarui.

docker run -it python:slim-buster

Perhatikan bahwa wadah Docker baru menjalankan versi Python yang lebih baru:versi 3.9.7.

Kesimpulan

Dalam tutorial ini, Anda mengintip di balik selimut dan mempelajari keajaiban di balik cara memperbarui wadah Docker:asap dan cermin! Tidak ada pembaruan! Sebagai gantinya, hapus semua jejak versi lama dan ganti dengan penampung baru menggunakan versi yang lebih baru. Dan, berkat idempotensi, container tetap berfungsi seperti biasa:TA-DA!

Jadi, container apa yang akan Anda perbarui selanjutnya?


Docker
  1. Cara Berbagi Gambar Docker Dengan Orang Lain

  2. Cara Memodifikasi Gambar Docker

  3. Bagaimana cara menginstal ulang versi cmake terbaru?

  1. Cara Memindahkan Gambar Docker antar Host

  2. Cara Upgrade Sendmail ke versi terbaru di CentOS

  3. Perbarui cURL untuk EasyApache 4 ke versi terbaru

  1. Cara Update Image dan Container Docker ke Versi Terbaru

  2. Cara Memasang Handbrake Versi Terbaru di Ubuntu

  3. Cara memperbarui/menambahkan file di Gambar Docker