Pembaruan aplikasi di dalam wadah Docker?

9

Biasanya pada server, pembaruan otomatis tambalan terkait keamanan telah dikonfigurasi. Oleh karena itu, jika saya menjalankan MySQL 5.5 dan patch keamanan baru keluar, Server Ubuntu akan menerapkan upgrade dan me-restart MySQL agar saya terlindungi secara otomatis. Jelas, ini dapat dinonaktifkan, tetapi ini membantu bagi kita yang agak malas;)

Apakah konsep semacam itu ada di dalam wadah Docker? Jika saya menjalankan MySQL dalam wadah Docker, apakah saya harus terus-menerus menghentikan wadah, membuka shell di dalamnya, lalu memperbarui dan memutakhirkan MySQL?

Naftuli Kay
sumber
Ini Docker, dan bukan pertanyaan LXC. Karena wadah LXC sendiri hanyalah distribusi linux lain yang berjalan di bawah kernel yang sama, Anda hanya akan menggunakan perintah yang sama untuk memperbarui sistem wadah LXC.
phoops

Jawaban:

13

Saya tidak setuju dengan jawaban yang diterima. Pertama, Anda harus merancang wadah Anda dengan pemisahan negara dalam pikiran (dalam kasus MySQL ini berarti bahwa setidaknya /var/lib/mysqlberjalan dalam volumenya sendiri ). Kedua, Anda harus menentukan strategi untuk peningkatan; state-of-the-art akan membuat gambar berversi untuk setiap set paket apt upgrade dan minta mereka diuji sebelum menukar volume data dari menjalankan wadah ke yang baru. Ini bisa termasuk downtime atau tidak down sama sekali jika Anda menggunakan sesuatu seperti hipache .

Pengaturan ini, meskipun lebih mahal untuk pengaturan awal, adalah sama dengan yang digunakan oleh perusahaan dengan skala massa kontainer dan akan lebih murah untuk dirawat seiring waktu.

Selain itu, peningkatan paket pada akhirnya dapat merusak wadah yang sedang berjalan, sehingga menerapkannya pada wadah yang berjalan bukanlah praktik terbaik - karena tidak menjalankan perangkat lunak yang ketinggalan zaman.

Deim0s
sumber
+1 ini adalah praktik terbaik. menyimpan data pada wadah server hanya meminta masalah.
booyaa
4

TL; DR : Jika Anda tidak membangunnya sendiri, itu tidak akan terjadi.

Cara efektif untuk melakukan ini adalah dengan hanya menulis skrip mulai kustom untuk wadah Anda yang ditentukan oleh CMDdi Anda Dockerfile. Dalam file ini, jalankan apt-get update && apt-get upgrade -qqysebelum memulai apa pun yang Anda jalankan.

Anda kemudian memiliki beberapa cara untuk memastikan pembaruan sampai ke wadah:

  1. Tetapkan pekerjaan cron di OS host Anda untuk memulai kembali wadah pada jadwal, sehingga memperbaruinya dan memutakhirkan sesuai jadwal.
  2. Berlangganan pembaruan keamanan ke bagian-bagian perangkat lunak, kemudian pada pembaruan paket yang terkena dampak, restart wadah.

Ini bukan hal termudah untuk dioptimalkan dan diotomatisasi, tetapi itu mungkin.

Naftuli Kay
sumber
1
Terus baca halaman ini. deim0s memiliki jawaban yang lebih baik.
mc0e