Saat menempatkan aplikasi ke server, biasanya ada pemisahan antara apa yang dibundel dengan aplikasi itu sendiri dan apa yang diharapkan dari platform (sistem operasi dan paket yang diinstal) untuk menyediakan. Satu poin dari ini adalah bahwa platform dapat diperbarui secara terpisah dari aplikasi. Ini berguna misalnya ketika pembaruan keamanan perlu diterapkan segera untuk paket yang disediakan oleh platform tanpa membangun kembali seluruh aplikasi.
Secara tradisional pembaruan keamanan telah diterapkan hanya dengan menjalankan perintah manajer paket untuk menginstal versi paket yang diperbarui pada sistem operasi (misalnya "pembaruan yum" pada RHEL). Tetapi dengan munculnya teknologi kontainer seperti Docker di mana gambar kontainer pada dasarnya bundel baik aplikasi dan platform, apa cara kanonik untuk menjaga sistem dengan wadah up to date? Host dan kontainer memiliki paket sendiri, independen, paket yang perlu diperbarui dan diperbarui pada host tidak akan memperbarui paket apa pun di dalam kontainer. Dengan rilis RHEL 7 yang menampilkan wadah Docker secara khusus, akan menarik untuk mendengar apa yang direkomendasikan oleh Redhat untuk menangani pembaruan keamanan wadah.
Pikiran pada beberapa opsi:
- Membiarkan manajer pembaruan paket paket pada tuan rumah tidak akan memperbarui paket di dalam wadah.
- Harus meregenerasi semua gambar kontainer untuk menerapkan pembaruan tampaknya mematahkan pemisahan antara aplikasi dan platform (memperbarui platform membutuhkan akses ke proses pembuatan aplikasi yang menghasilkan gambar Docker).
- Menjalankan perintah manual di dalam masing-masing wadah yang berjalan tampaknya rumit dan perubahan berisiko ditimpa saat berikutnya wadah diperbarui dari artefak rilis aplikasi.
Jadi tidak ada satupun dari pendekatan ini yang memuaskan.
docker pull debian/jessie
untuk memperbarui gambar, lalu membangun kembali gambar saya yang sudah ada, kemudian menghentikan wadah dan menjalankannya lagi ( dengan gambar baru). Gambar yang saya buat memiliki nama yang sama dengan yang sebelumnya, jadi permulaan dilakukan melalui skrip. Saya kemudian menghapus gambar "tanpa nama". Saya pasti akan menghargai alur kerja yang lebih baik.Jawaban:
Aplikasi bundel gambar Docker dan "platform", itu benar. Tetapi biasanya gambar terdiri dari gambar dasar dan aplikasi yang sebenarnya.
Jadi cara kanonik untuk menangani pembaruan keamanan adalah memperbarui gambar dasar, kemudian membangun kembali gambar aplikasi Anda.
sumber
Wadah tersebut seharusnya ringan dan dapat dipertukarkan. Jika wadah Anda memiliki masalah keamanan, Anda membangun kembali versi wadah yang ditambal dan menggunakan wadah baru. (banyak kontainer menggunakan gambar dasar standar yang menggunakan alat manajemen paket standar seperti apt-get untuk menginstal dependensi mereka, membangun kembali akan menarik pembaruan dari repositori)
Meskipun Anda bisa menambal di dalam wadah, itu tidak akan skala dengan baik.
sumber
Ini ditangani secara otomatis di SUSE Enterprise Linux menggunakan zypper-docker (1)
SUSE / zypper-docker
Mulai Cepat Docker
sumber
Pertama-tama, banyak pembaruan Anda yang biasanya Anda jalankan di masa lalu tidak akan berada di dalam wadah itu sendiri. Wadah harus merupakan subset yang cukup ringan dan kecil dari sistem file lengkap yang biasa Anda lihat di masa lalu. Paket-paket yang harus Anda perbarui adalah paket-paket yang merupakan bagian dari DockerFile Anda, dan karena Anda memiliki DockerFile, Anda harus dapat melacak paket-paket dan ID kontainer yang membutuhkan pembaruan. Cloudstein UI yang akan segera dirilis melacak bahan DockerFile ini untuk Anda sehingga orang dapat membangun skema pembaruan yang paling cocok untuk wadah mereka. Semoga ini membantu
sumber
umumnya lebih buruk daripada tiga pilihan yang Anda berikan. Sebagian besar gambar buruh pelabuhan tidak dibangun dengan pengelola paket sehingga Anda tidak bisa langsung masuk ke gambar buruh pelabuhan dan mengeluarkan pembaruan. Anda harus membangun kembali atau mendapatkan kembali gambar buruh pelabuhan.
Fakta bahwa Anda perlu membangun kembali atau memandang orang lain untuk membangun kembali untuk patch keamanan tampaknya tidak masuk akal dalam banyak kasus.
Saya sedang mempertimbangkan untuk menggunakan sonarr dan radarr dalam wadah buruh pelabuhan tetapi mengetahui bahwa mereka tidak akan mendapatkan pembaruan keamanan reguler yang didapat wadah saya adalah pelanggar kesepakatan. Mengelola pembaruan keamanan untuk wadah saya cukup merepotkan tanpa harus berurusan dengan entah bagaimana harus secara manual menerapkan pembaruan keamanan untuk setiap gambar buruh pelabuhan secara individual.
sumber