Memperbarui Docker bisa berarti tiga hal yang benar-benar berbeda. Anda mungkin perlu memperbarui Docker Engine, Docker Desktop, atau image yang dijalankan container Anda.
Kebanyakan developer tidak tahu mana yang sebenarnya perlu diperbarui, sehingga mereka memperbarui semuanya (dan berisiko merusak lingkungan) atau menghindari pembaruan sama sekali (dan membuka celah kerentanan). Untuk memperbarui Docker dengan aman, Anda hanya perlu tahu apa yang diperbarui dan mengikuti langkah yang tepat untuk setiap skenario.
Dalam artikel ini, saya akan memandu Anda melalui jalur pembaruan yang paling aman dan umum tanpa perlu menebak-nebak. Anda akan mempelajari apa yang sebenarnya dilakukan setiap jenis pembaruan Docker, kapan Anda memerlukannya, dan cara mengeksekusi pembaruan langkah demi langkah tanpa merusak container yang sudah ada.
Jika Anda baru mengenal Docker, mulailah dengan Introduction to Docker untuk membangun fondasi sebelum mengerjakan pembaruan dan pemeliharaan.
Apa Sebenarnya Arti "Memperbarui Docker"?
Seperti yang saya sebutkan, istilah "memperbarui Docker" dapat merujuk pada tiga hal berbeda, dan mencampuradukkannya dapat secara tidak sengaja merusak sistem yang berjalan. Anda mungkin memperbarui Docker Engine (perangkat lunak inti yang menjalankan container), Docker Desktop (aplikasi GUI), atau image container yang digunakan aplikasi Anda.
Setiap jenis pembaruan berdampak berbeda pada sistem Anda. Mari saya jelaskan.
Memperbarui Docker Engine vs. memperbarui image
Docker Engine adalah runtime yang mengelola container Anda.
Saat Anda memperbarui Docker Engine, Anda meningkatkan perangkat lunak yang membuat, menjalankan, dan mengelola container di sistem Anda. Ini adalah perubahan tingkat sistem yang memengaruhi cara Docker beroperasi. Anda memasang binary baru, memperbarui daemon, dan berpotensi mengubah cara Docker berinteraksi dengan sistem operasi Anda.
Image container adalah cetak biru yang dijalankan container Anda.
Memperbarui image berarti menarik versi aplikasi yang lebih baru yang dikemas di dalam container tersebut. Misalnya, jika Anda menjalankan PostgreSQL 14 dalam container dan ingin meningkatkan ke PostgreSQL 18, memperbarui image berarti menarik versi baru itu. Docker Engine itu sendiri tidak berubah - hanya perangkat lunak di dalam container Anda.
Hal kunci yang perlu diingat adalah memperbarui Docker Engine dapat memengaruhi semua container Anda, sedangkan memperbarui sebuah image hanya memengaruhi container yang dibangun dari image tersebut.
Apa yang terjadi pada container yang berjalan
Pembaruan Docker Engine tidak secara otomatis me-restart container Anda.
Saat Anda memperbarui Docker Engine di Linux, daemon Docker akan restart, namun container Anda tetap berjalan di sebagian besar setup modern. Docker menggunakan fitur bernama live restore yang menjaga container tetap hidup selama pembaruan daemon. Anda dapat memeriksa apakah fitur ini aktif dengan menjalankan docker info dan mencari "Live Restore Enabled: true."
Docker Desktop adalah cerita yang berbeda.
Di macOS dan Windows, memperbarui Docker Desktop akan menghentikan semua container yang berjalan. Seluruh VM Docker akan restart selama proses pembaruan. Container Anda tidak akan otomatis mulai setelah pembaruan selesai. Anda perlu memulainya secara manual atau menggunakan kebijakan restart.
Pembaruan image mengharuskan Anda membuat ulang container.
Menarik versi image baru sama sekali tidak menyentuh container yang sedang berjalan. Jika Anda ingin menggunakan image yang diperbarui, Anda harus menghentikan container lama, menghapusnya, dan membuat yang baru dari image yang diperbarui.
Inilah alasan memahami perbedaan antara pembaruan Engine dan pembaruan image itu penting. Yang satu mungkin membutuhkan perencanaan downtime, yang lain tidak.
Mengapa Anda Perlu Memperbarui Docker
Versi Docker yang usang membuat Anda terekspos pada kerentanan keamanan dan masalah kompatibilitas yang sudah diketahui. Jika itu saja belum meyakinkan Anda, lanjutkan membaca.
Keamanan dan stabilitas
Setiap rilis Docker menambal celah keamanan yang ditemukan pada versi sebelumnya.
Menjalankan versi lama berarti Anda rentan terhadap eksploit yang sudah diketahui penyerang. Peneliti keamanan dan komunitas Docker secara aktif menemukan dan melaporkan masalah ini, dan perusahaan di balik Docker memperbaikinya pada rilis yang lebih baru. Jika Anda tidak memperbarui, Anda membiarkan pintu terbuka.
Selain itu, stabilitas meningkat di setiap rilis. Perbaikan bug pada versi terbaru mengatasi hal-hal yang mengganggu sebagian besar pengguna dan yang dapat menjatuhkan container Anda di produksi.
Anda tidak perlu memperbarui setiap kali ada versi baru, tetapi melewatkan pembaruan selama berbulan-bulan berarti Anda melewatkan puluhan patch keamanan dan peningkatan stabilitas.
Kompatibilitas dengan sistem modern
Sistem operasi dan alat pengembangan terus maju entah Anda memperbarui Docker atau tidak.
OS Anda menerima pembaruan, alat CI/CD Anda mendapatkan fitur baru, dan platform orkestrasi seperti Kubernetes pada akhirnya akan menghentikan dukungan untuk versi Docker yang lebih lama. Jika Anda menjalankan Docker dari dua tahun lalu, Anda akan mulai melihat peringatan kompatibilitas, lalu error, lalu kegagalan total.
Image container modern juga mengharapkan fitur Docker yang lebih baru. Pembuat image menggunakan multi-stage build, optimisasi BuildKit, dan driver penyimpanan yang lebih baru yang tidak didukung oleh versi Docker lama. Anda mungkin menarik image yang tidak akan berjalan di setup Anda yang usang.
Jika Anda berencana menggunakan alat orkestrasi bersama Docker, Introduction to Kubernetes kami adalah kursus yang bagus untuk memulai.
Cara Memeriksa Versi Docker Saat Ini
Sebelum memperbarui, ada baiknya memeriksa versi Anda saat ini.
Memverifikasi versi yang terpasang
Jalankan perintah ini untuk melihat versi Docker Anda saat ini:
Perintah ini menampilkan banyak informasi tentang instalasi Docker Anda, termasuk versi server, storage driver, versi kernel, dan apakah fitur seperti live restore aktif. Anda tidak memerlukan semua informasi ini untuk pembaruan dasar, tetapi berguna untuk pemecahan masalah.
Menentukan apakah pembaruan diperlukan
Pembaruan versi minor biasanya aman dan sebaiknya diterapkan secara rutin.
Jika Anda menggunakan Docker 29.1.0 dan tersedia 29.1.3, itu adalah pembaruan minor dengan perbaikan bug dan patch keamanan. Pembaruan ini jarang menyebabkan kerusakan, dan sebaiknya Anda terapkan saat memungkinkan.
Pembaruan versi mayor memerlukan kehati-hatian lebih. Melompati dari Docker 24 ke Docker 29 mungkin memperkenalkan perubahan yang tidak kompatibel, fitur usang, atau persyaratan baru. Sebelum memperbarui lintas versi mayor, periksa catatan rilis Docker untuk versi target Anda guna melihat apa yang berubah.
Anda dapat menemukan versi Docker terbaru di dokumentasi resmi Docker atau halaman rilis GitHub. Bandingkan dengan output docker –version untuk melihat seberapa tertinggal Anda.
Cara Memperbarui Docker Engine
Proses pembaruan bergantung pada apakah Anda menjalankan Docker Engine di Linux atau Docker Desktop di macOS/Windows.
Memperbarui Docker di Linux
Linux menggunakan manajer paket sistem Anda untuk memperbarui Docker Engine.
Perintah tepatnya bervariasi berdasarkan distribusi, tetapi prosesnya sama:
Perbarui daftar paket Anda
Tingkatkan Docker
Berikut cara melakukannya di sistem berbasis Ubuntu dan Debian:
sudo apt update
sudo apt upgrade docker-ce docker-ce-cli containerd.ioDidukung oleh
Untuk sistem berbasis Red Hat seperti CentOS atau Fedora, jalankan perintah berikut:
sudo yum update docker-ce docker-ce-cli containerd.ioDidukung oleh
Daemon Docker akan restart secara otomatis selama pembaruan.
Jika Anda mengaktifkan live restore (periksa dengan docker info), container yang berjalan akan tetap berjalan. Jika tidak, container akan berhenti dan Anda perlu memulainya secara manual.
Setelah pembaruan selesai, Anda dapat memverifikasi versi baru:
Jika Anda memasang Docker menggunakan skrip kemudahan alih-alih repositori paket, Anda perlu mengunduh dan menjalankan skripnya lagi untuk memperbarui.
Memperbarui Docker Desktop di macOS dan Windows
Docker Desktop menangani pembaruan secara berbeda dibanding Docker Engine di Linux.
Pembaruan otomatis aktif secara default. Docker Desktop memeriksa pembaruan saat mulai dan menampilkan notifikasi saat versi baru tersedia. Klik notifikasi tersebut, dan Docker Desktop akan mengunduh serta memasang pembaruan untuk Anda.
Jika Anda lebih suka pembaruan manual, buka pengaturan Docker Desktop dan cari opsi "Check for updates". Anda dapat menonaktifkan pembaruan otomatis di sini dan memeriksa secara manual kapan pun Anda mau.
Melakukan pembaruan Docker secara manual juga tidak masalah.
Cukup unduh installer Docker Desktop terbaru dari situs Docker dan jalankan. Installer akan mendeteksi instalasi yang ada dan meningkatkan versinya tanpa menghapus image atau container Anda.
Ingat saja bahwa Docker Desktop akan menghentikan semua container selama pembaruan. Seluruh VM Docker akan restart, jadi rencanakan beberapa menit downtime. Container Anda tidak akan otomatis restart kecuali Anda mengonfigurasinya dengan kebijakan restart seperti --restart always.
Setelah memperbarui, buka Docker Desktop dan biarkan hingga benar-benar menyala sebelum menjalankan docker –version untuk mengonfirmasi versi baru.
Mengelola banyak container secara individual bukanlah sesuatu yang patut dibanggakan. Lihat Panduan Docker Compose kami untuk mempelajari build multi-container.
Cara Memverifikasi Pembaruan Docker
Docker sekarang seharusnya sudah diperbarui - tetapi mari verifikasi apakah benar demikian.
Output harus menampilkan versi target Anda. Jika masih menampilkan versi lama, pembaruan tidak selesai dengan benar atau Anda perlu me-restart terminal untuk memuat binary baru.
Versinya tidak berubah di mesin saya, tapi itu hanya karena saya sudah menggunakan versi terbaru.
Langkah berikutnya adalah memeriksa status daemon Docker:
Perintah ini menarik versi terbaru dari image PostgreSQL dengan tag latest. Namun itu tidak selalu berarti seperti yang Anda pikirkan - itu hanyalah sebuah tag yang dapat diarahkan maintainer image ke versi mana pun yang mereka inginkan.
Selalu disarankan untuk eksplisit dengan tag agar terhindar dari kejutan:
Perintah ini khusus menarik PostgreSQL versi 18. Jika versi 18.1 dirilis, menjalankan perintah ini lagi akan menarik image 18.1 yang diperbarui sambil tetap berada dalam seri versi 18.
Untuk image lainnya, periksa dulu versi saat ini dengan perintah docker images. Lalu tarik versi yang lebih baru sesuai kebutuhan. Container yang ada akan tetap menjalankan image lama hingga Anda membuat ulang dengan yang baru.
Membangun ulang image kustom
Jika Anda membuat image sendiri dengan Dockerfile, Anda perlu membangunnya ulang setelah menarik pembaruan image dasar.
Misalkan Dockerfile Anda dimulai dengan FROM python:3.14. Meski Anda telah menarik image python:3.14 terbaru, image kustom Anda masih menggunakan layer cache lama. Bangun ulang untuk mengambil pembaruan:
docker build --no-cache -t myapp:latest .Didukung oleh
Perintah ini mengabaikan semua layer cache dan membangun semuanya dari awal. Memang lebih lama tetapi menjamin Anda menggunakan image dasar dan dependensi yang terbaru.
Setelah membangun ulang, hentikan container lama Anda dan jalankan yang baru dengan image yang diperbarui - pembaruan tidak berlaku otomatis untuk container yang sedang berjalan.
Perlu mengosongkan ruang disk setelah memperbarui? Tutorial Docker Prune kami menunjukkan cara membersihkan image dan container yang tidak terpakai dengan aman.
Masalah Umum Pembaruan Docker
Pembaruan Docker sering gagal dengan cara yang dapat diprediksi, dan sebagian besar masalah memiliki perbaikan cepat. Berikut beberapa yang pernah saya alami sendiri.
Error izin, layanan, dan instalasi
Error "Permission denied" berarti user Anda tidak dapat mengakses socket Docker.
Ganti tag dengan versi yang Anda perlukan. Container dan image Anda tetap utuh selama penurunan versi.
Untuk macOS dan Windows, pengembalian versi lebih sederhana. Unduh installer lama dari arsip rilis Docker dan jalankan. Installer akan mengganti versi saat ini dengan yang lebih lama tanpa menyentuh container atau image Anda.
Praktik Terbaik Pembaruan Docker
Saran terbaik adalah menjaga Docker tetap diperbarui secara berkala. Jika Anda belum melakukannya selama bertahun-tahun, cari di halaman rilis untuk setiap perubahan yang tidak kompatibel.
Menjaga Docker tetap terbaru dengan aman
Setel pengingat untuk memeriksa pembaruan Docker alih-alih menunggu masalah muncul.
Periksa pembaruan setiap bulan - bukan karena Anda perlu memasang semuanya, tetapi karena Anda perlu tahu apa yang tersedia. Dan Anda butuh sesuatu untuk mengingatkan Anda. Patch keamanan lebih penting daripada pembaruan fitur, jadi prioritaskan saat dirilis.
Praktik yang baik adalah mendokumentasikan setup Anda saat ini sebelum memperbarui. Catat versi Docker Anda, daftar container yang berjalan dengan docker ps, dan setiap konfigurasi kustom. Jika sesuatu rusak, Anda akan tahu persis apa yang berubah.
Uji pembaruan di mesin pengembangan terlebih dahulu jika Anda menjalankan Docker di produksi. Jalankan lingkungan yang serupa, perbarui Docker di sana, dan pastikan container Anda masih berfungsi sebelum menyentuh produksi.
Kapan harus mengotomatisasi pembaruan
Otomasi masuk akal untuk lingkungan pengembangan di mana downtime tidak menjadi masalah.
Anda dapat mengonfigurasi Docker Desktop untuk pembaruan otomatis atau menyiapkan unattended upgrades di Linux untuk patch keamanan. Ini bekerja baik untuk mesin pengembangan lokal di mana restart tidak mengganggu layanan kritis.
Jangan otomatisasi pembaruan di produksi tanpa pengaman yang tepat.
Anda memerlukan pemantauan, strategi rollback, dan pengujian sebelum menerapkan pembaruan ke sistem yang menjalankan beban kerja nyata. Pembaruan Docker dapat merusak sesuatu - Anda memerlukan manusia dalam proses untuk sistem produksi.
Pembaruan manual melalui pengingat bulanan adalah cara pilihan saya, dan saya tidak pernah mengalami masalah.
Kesimpulan
Memperbarui Docker dimulai dengan memahami apa yang sebenarnya Anda perbarui.
Pembaruan Docker Engine, pembaruan Docker Desktop, dan pembaruan image adalah tiga hal berbeda dengan dampak berbeda pada sistem Anda. Ketahui mana yang Anda perlukan, ikuti proses yang tepat untuk platform Anda, dan uji setelahnya. Itu saja.
Setel pengingat di ponsel Anda. Periksa pembaruan setiap bulan, prioritaskan patch keamanan, dan dokumentasikan apa yang Anda jalankan sebelum mengubah apa pun. Pembaruan tidak perlu membuat Anda stres - ini seharusnya menjadi tugas pemeliharaan rutin.
Untuk lingkungan produksi, ingat bahwa container Anda bergantung pada Docker yang berfungsi dengan benar. Perlakukan pembaruan dengan kehati-hatian yang sama seperti perubahan infrastruktur kritis lainnya - secara terukur, dengan pengujian, dan dengan rencana rollback jika terjadi masalah.
Sekarang Anda tahu cara memperbarui Docker - langkah berikutnya adalah meningkatkan keterampilan container Anda dengan kursus Intermediate Docker kami. Anda akan mempelajari semua tentang jaringan, image container tingkat lanjut, dan Docker Compose.
Senior Data Scientist yang berbasis di Kroasia. Penulis Tekno Teratas dengan lebih dari 700 artikel yang telah diterbitkan, menghasilkan lebih dari 10 juta tayangan. Penulis buku Machine Learning Automation with TPOT.
FAQs
Bagaimana saya bisa mengotomatisasi pembaruan container Docker menggunakan Watchtower?⌄
Watchtower adalah container yang memantau container Anda yang berjalan dan secara otomatis memperbaruinya saat versi image baru tersedia. Anda menjalankan Watchtower sebagai container itu sendiri dengan akses ke socket Docker, dan secara berkala memeriksa pembaruan image, menarik versi baru, lalu me-restart container Anda dengan image yang diperbarui. Ini bekerja dengan baik untuk lingkungan pengembangan, namun berhati-hatilah di produksi - pembaruan otomatis dapat merusak sesuatu tanpa pengujian dan strategi rollback yang tepat.
Apa praktik terbaik untuk menyiapkan registry Docker privat?⌄
Amankan registry privat Anda dengan sertifikat TLS dan autentikasi untuk mencegah akses tidak sah. Gunakan backend penyimpanan seperti S3 atau Azure Blob Storage untuk skalabilitas dan keandalan alih-alih penyimpanan disk lokal. Terapkan pemindaian image untuk kerentanan dan siapkan garbage collection untuk menghapus layer yang tidak digunakan dan menghemat ruang. Anda juga harus mengonfigurasi kontrol akses sehingga tim hanya dapat push ke dan pull dari repository yang mereka berwenang gunakan.
Apa perbedaan canary deployment dengan blue-green deployment?⌄
Blue-green deployment menjalankan dua lingkungan produksi yang identik - Anda menerapkan versi baru ke lingkungan yang tidak aktif, mengujinya, lalu mengalihkan semua traffic sekaligus. Canary deployment menggulirkan versi baru secara bertahap ke sebagian kecil pengguna terlebih dahulu, memantau masalah, lalu perlahan meningkatkan traffic ke versi baru sementara versi lama masih menangani sebagian besar permintaan. Canary deployment menangkap masalah dengan dampak pengguna yang lebih kecil, sementara blue-green deployment menawarkan rollback instan dengan mengalihkan lingkungan kembali.
Apa keuntungan menggunakan multi-stage build di Docker?⌄
Multi-stage build memungkinkan Anda menggunakan beberapa FROM dalam satu Dockerfile, yang berarti Anda dapat melakukan kompilasi atau build aplikasi di satu tahap dengan semua alat build, lalu menyalin hanya artefak final ke image runtime minimal. Ini secara drastis mengurangi ukuran image karena Anda tidak mengirim dependensi build, compiler, atau kode sumber ke produksi. Anda juga mendapatkan build yang lebih cepat melalui caching layer yang lebih baik dan pemisahan yang lebih bersih antara lingkungan build dan runtime.
Bagaimana saya dapat memantau metrik kinerja container Docker secara efektif?⌄
Gunakan docker stats untuk metrik real-time cepat terkait CPU, memori, jaringan, dan I/O disk untuk semua container yang berjalan. Untuk pemantauan produksi, alat seperti Prometheus dengan cAdvisor mengumpulkan metrik container terperinci dan menyimpannya untuk analisis serta peringatan. Docker juga mengekspos metrik melalui API yang dapat Anda kumpulkan dengan platform pemantauan. Siapkan peringatan untuk penggunaan sumber daya tinggi, restart container, dan health check yang gagal untuk menangkap masalah sebelum memengaruhi pengguna.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Memperbarui Docker bisa berarti tiga hal yang benar-benar berbeda. Anda mungkin perlu memperbarui Docker Engine, Docker Desktop, atau image yang dijalankan container Anda.
Kebanyakan developer tidak tahu mana yang sebenarnya perlu diperbarui, sehingga mereka memperbarui semuanya (dan berisiko merusak lingkungan) atau menghindari pembaruan sama sekali (dan membuka celah kerentanan). Untuk memperbarui Docker dengan aman, Anda hanya perlu tahu apa yang diperbarui dan mengikuti langkah yang tepat untuk setiap skenario.
Dalam artikel ini, saya akan memandu Anda melalui jalur pembaruan yang paling aman dan umum tanpa perlu menebak-nebak. Anda akan mempelajari apa yang sebenarnya dilakukan setiap jenis pembaruan Docker, kapan Anda memerlukannya, dan cara mengeksekusi pembaruan langkah demi langkah tanpa merusak container yang sudah ada.
Jika Anda baru mengenal Docker, mulailah dengan Introduction to Docker untuk membangun fondasi sebelum mengerjakan pembaruan dan pemeliharaan.
Apa Sebenarnya Arti "Memperbarui Docker"?
Seperti yang saya sebutkan, istilah "memperbarui Docker" dapat merujuk pada tiga hal berbeda, dan mencampuradukkannya dapat secara tidak sengaja merusak sistem yang berjalan. Anda mungkin memperbarui Docker Engine (perangkat lunak inti yang menjalankan container), Docker Desktop (aplikasi GUI), atau image container yang digunakan aplikasi Anda.
Setiap jenis pembaruan berdampak berbeda pada sistem Anda. Mari saya jelaskan.
Memperbarui Docker Engine vs. memperbarui image
Docker Engine adalah runtime yang mengelola container Anda.
Saat Anda memperbarui Docker Engine, Anda meningkatkan perangkat lunak yang membuat, menjalankan, dan mengelola container di sistem Anda. Ini adalah perubahan tingkat sistem yang memengaruhi cara Docker beroperasi. Anda memasang binary baru, memperbarui daemon, dan berpotensi mengubah cara Docker berinteraksi dengan sistem operasi Anda.
Image container adalah cetak biru yang dijalankan container Anda.
Memperbarui image berarti menarik versi aplikasi yang lebih baru yang dikemas di dalam container tersebut. Misalnya, jika Anda menjalankan PostgreSQL 14 dalam container dan ingin meningkatkan ke PostgreSQL 18, memperbarui image berarti menarik versi baru itu. Docker Engine itu sendiri tidak berubah - hanya perangkat lunak di dalam container Anda.
Hal kunci yang perlu diingat adalah memperbarui Docker Engine dapat memengaruhi semua container Anda, sedangkan memperbarui sebuah image hanya memengaruhi container yang dibangun dari image tersebut.
Apa yang terjadi pada container yang berjalan
Pembaruan Docker Engine tidak secara otomatis me-restart container Anda.
Saat Anda memperbarui Docker Engine di Linux, daemon Docker akan restart, namun container Anda tetap berjalan di sebagian besar setup modern. Docker menggunakan fitur bernama live restore yang menjaga container tetap hidup selama pembaruan daemon. Anda dapat memeriksa apakah fitur ini aktif dengan menjalankan
docker infodan mencari "Live Restore Enabled: true."Docker Desktop adalah cerita yang berbeda.
Di macOS dan Windows, memperbarui Docker Desktop akan menghentikan semua container yang berjalan. Seluruh VM Docker akan restart selama proses pembaruan. Container Anda tidak akan otomatis mulai setelah pembaruan selesai. Anda perlu memulainya secara manual atau menggunakan kebijakan restart.
Pembaruan image mengharuskan Anda membuat ulang container.
Menarik versi image baru sama sekali tidak menyentuh container yang sedang berjalan. Jika Anda ingin menggunakan image yang diperbarui, Anda harus menghentikan container lama, menghapusnya, dan membuat yang baru dari image yang diperbarui.
Inilah alasan memahami perbedaan antara pembaruan Engine dan pembaruan image itu penting. Yang satu mungkin membutuhkan perencanaan downtime, yang lain tidak.
Mengapa Anda Perlu Memperbarui Docker
Versi Docker yang usang membuat Anda terekspos pada kerentanan keamanan dan masalah kompatibilitas yang sudah diketahui. Jika itu saja belum meyakinkan Anda, lanjutkan membaca.
Keamanan dan stabilitas
Setiap rilis Docker menambal celah keamanan yang ditemukan pada versi sebelumnya.
Menjalankan versi lama berarti Anda rentan terhadap eksploit yang sudah diketahui penyerang. Peneliti keamanan dan komunitas Docker secara aktif menemukan dan melaporkan masalah ini, dan perusahaan di balik Docker memperbaikinya pada rilis yang lebih baru. Jika Anda tidak memperbarui, Anda membiarkan pintu terbuka.
Selain itu, stabilitas meningkat di setiap rilis. Perbaikan bug pada versi terbaru mengatasi hal-hal yang mengganggu sebagian besar pengguna dan yang dapat menjatuhkan container Anda di produksi.
Anda tidak perlu memperbarui setiap kali ada versi baru, tetapi melewatkan pembaruan selama berbulan-bulan berarti Anda melewatkan puluhan patch keamanan dan peningkatan stabilitas.
Kompatibilitas dengan sistem modern
Sistem operasi dan alat pengembangan terus maju entah Anda memperbarui Docker atau tidak.
OS Anda menerima pembaruan, alat CI/CD Anda mendapatkan fitur baru, dan platform orkestrasi seperti Kubernetes pada akhirnya akan menghentikan dukungan untuk versi Docker yang lebih lama. Jika Anda menjalankan Docker dari dua tahun lalu, Anda akan mulai melihat peringatan kompatibilitas, lalu error, lalu kegagalan total.
Image container modern juga mengharapkan fitur Docker yang lebih baru. Pembuat image menggunakan multi-stage build, optimisasi BuildKit, dan driver penyimpanan yang lebih baru yang tidak didukung oleh versi Docker lama. Anda mungkin menarik image yang tidak akan berjalan di setup Anda yang usang.
Jika Anda berencana menggunakan alat orkestrasi bersama Docker, Introduction to Kubernetes kami adalah kursus yang bagus untuk memulai.
Cara Memeriksa Versi Docker Saat Ini
Sebelum memperbarui, ada baiknya memeriksa versi Anda saat ini.
Memverifikasi versi yang terpasang
Jalankan perintah ini untuk melihat versi Docker Anda saat ini:
Ini menampilkan versi Docker Engine yang terpasang di sistem Anda:
Nomor versi mengikuti penomoran semantik:
major.minor.patch. Pada contoh ini, 29 adalah versi mayor, 1 adalah versi minor, dan 3 adalah versi patch.Untuk detail lebih lanjut tentang setup Docker Anda, jalankan perintah ini sebagai gantinya:
Perintah ini menampilkan banyak informasi tentang instalasi Docker Anda, termasuk versi server, storage driver, versi kernel, dan apakah fitur seperti live restore aktif. Anda tidak memerlukan semua informasi ini untuk pembaruan dasar, tetapi berguna untuk pemecahan masalah.
Menentukan apakah pembaruan diperlukan
Pembaruan versi minor biasanya aman dan sebaiknya diterapkan secara rutin.
Jika Anda menggunakan Docker 29.1.0 dan tersedia 29.1.3, itu adalah pembaruan minor dengan perbaikan bug dan patch keamanan. Pembaruan ini jarang menyebabkan kerusakan, dan sebaiknya Anda terapkan saat memungkinkan.
Pembaruan versi mayor memerlukan kehati-hatian lebih. Melompati dari Docker 24 ke Docker 29 mungkin memperkenalkan perubahan yang tidak kompatibel, fitur usang, atau persyaratan baru. Sebelum memperbarui lintas versi mayor, periksa catatan rilis Docker untuk versi target Anda guna melihat apa yang berubah.
Anda dapat menemukan versi Docker terbaru di dokumentasi resmi Docker atau halaman rilis GitHub. Bandingkan dengan output
docker –versionuntuk melihat seberapa tertinggal Anda.Cara Memperbarui Docker Engine
Proses pembaruan bergantung pada apakah Anda menjalankan Docker Engine di Linux atau Docker Desktop di macOS/Windows.
Memperbarui Docker di Linux
Linux menggunakan manajer paket sistem Anda untuk memperbarui Docker Engine.
Perintah tepatnya bervariasi berdasarkan distribusi, tetapi prosesnya sama:
Berikut cara melakukannya di sistem berbasis Ubuntu dan Debian:
Untuk sistem berbasis Red Hat seperti CentOS atau Fedora, jalankan perintah berikut:
Daemon Docker akan restart secara otomatis selama pembaruan.
Jika Anda mengaktifkan live restore (periksa dengan
docker info), container yang berjalan akan tetap berjalan. Jika tidak, container akan berhenti dan Anda perlu memulainya secara manual.Setelah pembaruan selesai, Anda dapat memverifikasi versi baru:
Jika Anda memasang Docker menggunakan skrip kemudahan alih-alih repositori paket, Anda perlu mengunduh dan menjalankan skripnya lagi untuk memperbarui.
Memperbarui Docker Desktop di macOS dan Windows
Docker Desktop menangani pembaruan secara berbeda dibanding Docker Engine di Linux.
Pembaruan otomatis aktif secara default. Docker Desktop memeriksa pembaruan saat mulai dan menampilkan notifikasi saat versi baru tersedia. Klik notifikasi tersebut, dan Docker Desktop akan mengunduh serta memasang pembaruan untuk Anda.
Jika Anda lebih suka pembaruan manual, buka pengaturan Docker Desktop dan cari opsi "Check for updates". Anda dapat menonaktifkan pembaruan otomatis di sini dan memeriksa secara manual kapan pun Anda mau.
Melakukan pembaruan Docker secara manual juga tidak masalah.
Cukup unduh installer Docker Desktop terbaru dari situs Docker dan jalankan. Installer akan mendeteksi instalasi yang ada dan meningkatkan versinya tanpa menghapus image atau container Anda.
Ingat saja bahwa Docker Desktop akan menghentikan semua container selama pembaruan. Seluruh VM Docker akan restart, jadi rencanakan beberapa menit downtime. Container Anda tidak akan otomatis restart kecuali Anda mengonfigurasinya dengan kebijakan restart seperti
--restart always.Setelah memperbarui, buka Docker Desktop dan biarkan hingga benar-benar menyala sebelum menjalankan
docker –versionuntuk mengonfirmasi versi baru.Mengelola banyak container secara individual bukanlah sesuatu yang patut dibanggakan. Lihat Panduan Docker Compose kami untuk mempelajari build multi-container.
Cara Memverifikasi Pembaruan Docker
Docker sekarang seharusnya sudah diperbarui - tetapi mari verifikasi apakah benar demikian.
Mengonfirmasi versi yang terpasang
Periksa dulu nomor versi:
Output harus menampilkan versi target Anda. Jika masih menampilkan versi lama, pembaruan tidak selesai dengan benar atau Anda perlu me-restart terminal untuk memuat binary baru.
Versinya tidak berubah di mesin saya, tapi itu hanya karena saya sudah menggunakan versi terbaru.
Langkah berikutnya adalah memeriksa status daemon Docker:
Jika gagal dengan "Cannot connect to the Docker daemon," berarti daemon tidak berjalan. Di Linux, restart dengan perintah berikut:
Di macOS dan Windows, cukup buka Docker Desktop dan tunggu hingga berjalan.
Pelajari perintah penting untuk pekerjaan container sehari-hari dalam artikel terbaru kami yang menampilkan 18 Perintah Docker Teratas.
Menjalankan container uji
Untuk memverifikasi tidak ada yang rusak setelah pembaruan, coba tarik dan jalankan container sederhana:
Perintah ini menarik image
hello-worldyang kecil dan menjalankannya. Anda akan melihat pesan yang menjelaskan bahwa Docker berfungsi dengan benar:Cara Memperbarui Image Docker Setelah Pembaruan Engine
Memperbarui Docker Engine tidak memperbarui image container Anda - Anda perlu menanganinya secara terpisah.
Menarik versi image yang lebih baru
Anda dapat menjalankan perintah
docker pulluntuk mendapatkan versi terbaru dari sebuah image:Perintah ini menarik versi terbaru dari image PostgreSQL dengan tag
latest. Namun itu tidak selalu berarti seperti yang Anda pikirkan - itu hanyalah sebuah tag yang dapat diarahkan maintainer image ke versi mana pun yang mereka inginkan.Selalu disarankan untuk eksplisit dengan tag agar terhindar dari kejutan:
Perintah ini khusus menarik PostgreSQL versi 18. Jika versi 18.1 dirilis, menjalankan perintah ini lagi akan menarik image 18.1 yang diperbarui sambil tetap berada dalam seri versi 18.
Untuk image lainnya, periksa dulu versi saat ini dengan perintah
docker images. Lalu tarik versi yang lebih baru sesuai kebutuhan. Container yang ada akan tetap menjalankan image lama hingga Anda membuat ulang dengan yang baru.Membangun ulang image kustom
Jika Anda membuat image sendiri dengan Dockerfile, Anda perlu membangunnya ulang setelah menarik pembaruan image dasar.
Misalkan Dockerfile Anda dimulai dengan
FROM python:3.14. Meski Anda telah menarik imagepython:3.14terbaru, image kustom Anda masih menggunakan layer cache lama. Bangun ulang untuk mengambil pembaruan:Perintah ini mengabaikan semua layer cache dan membangun semuanya dari awal. Memang lebih lama tetapi menjamin Anda menggunakan image dasar dan dependensi yang terbaru.
Setelah membangun ulang, hentikan container lama Anda dan jalankan yang baru dengan image yang diperbarui - pembaruan tidak berlaku otomatis untuk container yang sedang berjalan.
Perlu mengosongkan ruang disk setelah memperbarui? Tutorial Docker Prune kami menunjukkan cara membersihkan image dan container yang tidak terpakai dengan aman.
Masalah Umum Pembaruan Docker
Pembaruan Docker sering gagal dengan cara yang dapat diprediksi, dan sebagian besar masalah memiliki perbaikan cepat. Berikut beberapa yang pernah saya alami sendiri.
Error izin, layanan, dan instalasi
Error "Permission denied" berarti user Anda tidak dapat mengakses socket Docker.
Di Linux, tambahkan user Anda ke grup docker:
Logout lalu login kembali agar perubahan berlaku. Setelah itu, Anda tidak perlu
sudountuk perintah docker.Error "Cannot connect to the Docker daemon" berarti Docker tidak berjalan.
Periksa status layanan:
Jika berhenti atau gagal, mulai ulang:
Jika tidak bisa mulai, periksa log dengan
journalctl -u dockeruntuk melihat apa yang bermasalah.Di macOS dan Windows, cukup jalankan aplikasi Docker Desktop.
Konflik paket saat instalasi terjadi ketika paket Docker lama mengganggu paket baru.
Anda dapat menjalankan perintah ini untuk menghapus paket Docker lama sebelum memasang versi yang diperbarui:
Lalu pasang ulang Docker mengikuti instruksi instalasi resmi untuk distribusi Anda.
Mengembalikan atau menurunkan versi Docker
Jika pembaruan merusak setup Anda, Anda dapat menurunkan ke versi sebelumnya.
Di Linux, cari versi yang tersedia di manajer paket Anda:
Pasang versi lama tertentu:
Ganti tag dengan versi yang Anda perlukan. Container dan image Anda tetap utuh selama penurunan versi.
Untuk macOS dan Windows, pengembalian versi lebih sederhana. Unduh installer lama dari arsip rilis Docker dan jalankan. Installer akan mengganti versi saat ini dengan yang lebih lama tanpa menyentuh container atau image Anda.
Praktik Terbaik Pembaruan Docker
Saran terbaik adalah menjaga Docker tetap diperbarui secara berkala. Jika Anda belum melakukannya selama bertahun-tahun, cari di halaman rilis untuk setiap perubahan yang tidak kompatibel.
Menjaga Docker tetap terbaru dengan aman
Setel pengingat untuk memeriksa pembaruan Docker alih-alih menunggu masalah muncul.
Periksa pembaruan setiap bulan - bukan karena Anda perlu memasang semuanya, tetapi karena Anda perlu tahu apa yang tersedia. Dan Anda butuh sesuatu untuk mengingatkan Anda. Patch keamanan lebih penting daripada pembaruan fitur, jadi prioritaskan saat dirilis.
Praktik yang baik adalah mendokumentasikan setup Anda saat ini sebelum memperbarui. Catat versi Docker Anda, daftar container yang berjalan dengan
docker ps, dan setiap konfigurasi kustom. Jika sesuatu rusak, Anda akan tahu persis apa yang berubah.Uji pembaruan di mesin pengembangan terlebih dahulu jika Anda menjalankan Docker di produksi. Jalankan lingkungan yang serupa, perbarui Docker di sana, dan pastikan container Anda masih berfungsi sebelum menyentuh produksi.
Kapan harus mengotomatisasi pembaruan
Otomasi masuk akal untuk lingkungan pengembangan di mana downtime tidak menjadi masalah.
Anda dapat mengonfigurasi Docker Desktop untuk pembaruan otomatis atau menyiapkan unattended upgrades di Linux untuk patch keamanan. Ini bekerja baik untuk mesin pengembangan lokal di mana restart tidak mengganggu layanan kritis.
Jangan otomatisasi pembaruan di produksi tanpa pengaman yang tepat.
Anda memerlukan pemantauan, strategi rollback, dan pengujian sebelum menerapkan pembaruan ke sistem yang menjalankan beban kerja nyata. Pembaruan Docker dapat merusak sesuatu - Anda memerlukan manusia dalam proses untuk sistem produksi.
Pembaruan manual melalui pengingat bulanan adalah cara pilihan saya, dan saya tidak pernah mengalami masalah.
Kesimpulan
Memperbarui Docker dimulai dengan memahami apa yang sebenarnya Anda perbarui.
Pembaruan Docker Engine, pembaruan Docker Desktop, dan pembaruan image adalah tiga hal berbeda dengan dampak berbeda pada sistem Anda. Ketahui mana yang Anda perlukan, ikuti proses yang tepat untuk platform Anda, dan uji setelahnya. Itu saja.
Setel pengingat di ponsel Anda. Periksa pembaruan setiap bulan, prioritaskan patch keamanan, dan dokumentasikan apa yang Anda jalankan sebelum mengubah apa pun. Pembaruan tidak perlu membuat Anda stres - ini seharusnya menjadi tugas pemeliharaan rutin.
Untuk lingkungan produksi, ingat bahwa container Anda bergantung pada Docker yang berfungsi dengan benar. Perlakukan pembaruan dengan kehati-hatian yang sama seperti perubahan infrastruktur kritis lainnya - secara terukur, dengan pengujian, dan dengan rencana rollback jika terjadi masalah.
Sekarang Anda tahu cara memperbarui Docker - langkah berikutnya adalah meningkatkan keterampilan container Anda dengan kursus Intermediate Docker kami. Anda akan mempelajari semua tentang jaringan, image container tingkat lanjut, dan Docker Compose.