Есть ли элегантный способ добавить ssl-сертификаты к изображениям, полученным из docker pull?
Я ищу простой и воспроизводимый способ добавления файла в / etc / ssl / certs и запуска update-ca-Certificates. (Это должно охватывать образы ubuntu и debian).
Я использую докер в CoreOS, и машина coreos доверяет необходимым сертификатам ssl, но контейнеры докеров, очевидно, имеют только значение по умолчанию.
Я пробовал использовать, docker run --entrypoint=/bin/bash
чтобы затем добавить сертификат и запустить update-ca-certificates
, но, похоже, это навсегда переопределит точку входа.
Мне также интересно, было бы более элегантным просто смонтировать /etc/ssl/certs
контейнер из копии хост-машины? Это неявно позволит контейнерам доверять тем же вещам, что и хост.
Я работаю с надоедливым прокси, который отказывается от всего :(. Который ломает SSL и делает работу с контейнерами странной.
источник
Ответы:
Установите сертификаты в контейнер Docker, используя
-v
:источник
Я пытаюсь сделать что-то подобное. Как отмечалось выше, я думаю, вы захотите создать новый образ с пользовательским Dockerfile (используя изображение, которое вы вытащили в качестве базового образа)
ADD
, а затем свой сертификатRUN update-ca-certificates
. Таким образом, у вас будет постоянное состояние каждый раз, когда вы запускаете контейнер из этого нового образа.Скажем,
docker build
против того, что Dockerfile создал IMAGE_ID. В следующий разdocker run -d [any other options] IMAGE_ID
контейнер, запущенный этой командой, будет иметь информацию о вашем сертификате. Просто и воспроизводимо.источник
Как было предложено в комментарии выше , если хранилище сертификатов на хосте совместимо с гостевой, вы можете просто подключить его напрямую.
На хосте Debian (и контейнере) я успешно сделал:
источник
Вы можете использовать относительный путь для подключения тома к контейнеру:
Обратите внимание на обратную галочку,
pwd
которая дает вам текущий рабочий каталог. Предполагается, чтоcerts
в текущем каталоге у вас есть папка, вdocker run
которой выполняется. Отлично подходит для локальной разработки и сохраняет папку сертификатов видимой для вашего проекта.источник