Apakah ada cara elegan untuk menambahkan sertifikat ssl ke gambar yang berasal dari docker pull ?.
Saya mencari cara sederhana dan dapat direproduksi untuk menambahkan file ke / etc / ssl / certs dan menjalankan update-ca-certificate. (Ini harus mencakup gambar ubuntu dan debian).
Saya menggunakan buruh pelabuhan di CoreOS, dan mesin coreos mempercayai sertifikat ssl yang diperlukan, tetapi kontainer buruh pelabuhan jelas hanya memiliki default.
Saya sudah mencoba menggunakan docker run --entrypoint=/bin/bash
untuk kemudian menambahkan sertifikat dan menjalankan update-ca-certificates
, tetapi ini tampaknya mengganti titik masuk secara permanen.
Saya juga bertanya-tanya sekarang, apakah akan lebih elegan untuk hanya memasang /etc/ssl/certs
di wadah dari salinan mesin host? Melakukan ini secara implisit akan memungkinkan container untuk mempercayai hal yang sama sebagai host.
Saya sedang bekerja dengan proxy yang mengganggu yang mengundurkan diri semuanya :(. Yang merusak SSL dan membuat penampung agak aneh untuk digunakan.
sumber
Jawaban:
Pasang sertifikat ke kontainer Docker menggunakan
-v
:sumber
Saya mencoba melakukan sesuatu yang mirip dengan ini. Seperti yang dikomentari di atas, saya rasa Anda ingin membuat image baru dengan Dockerfile kustom (menggunakan gambar yang Anda tarik sebagai gambar dasar), lalu
ADD
sertifikat AndaRUN update-ca-certificates
. Dengan cara ini Anda akan memiliki status yang konsisten setiap kali Anda memulai penampung dari gambar baru ini.Misalkan saja,
docker build
Dockerfile menghasilkan IMAGE_ID. Selanjutnyadocker run -d [any other options] IMAGE_ID
, wadah yang dimulai dengan perintah itu akan memiliki info sertifikat Anda. Sederhana dan dapat direproduksi.sumber
Seperti yang disarankan dalam komentar di atas , jika penyimpanan sertifikat di host kompatibel dengan tamu, Anda dapat langsung memasangnya.
Di host Debian (dan container), saya berhasil melakukan:
sumber
Anda dapat menggunakan jalur relatif untuk memasang volume ke penampung:
Perhatikan centang kembali
pwd
yang memberi Anda direktori kerja saat ini. Ini mengasumsikan Anda memilikicerts
folder di direktori saatdocker run
ini yang dijalankan. Agak bagus untuk pengembangan lokal dan menjaga folder certs tetap terlihat oleh proyek Anda.sumber