Подтвердить что ты не робот

Сертификаты ssl контейнера для докеров

Есть ли какой-либо элегантный способ добавления сертификатов ssl к изображениям, полученным из докеры?

Я ищу простой и воспроизводимый способ добавления файла в /etc/ssl/certs и запуска обновлений-ca-сертификатов. (Это должно охватывать изображения ubuntu и debian).

Я использую docker на CoreOS, и машина coreos доверяет требуемым сертификатам ssl, но контейнеры докеров явно имеют значение по умолчанию.

Я попытался использовать docker run --entrypoint=/bin/bash, чтобы добавить сертификат и запустить update-ca-certificates, но это, похоже, постоянно отменяет точку входа.

Мне также интересно сейчас, было бы более элегантно просто монтировать /etc/ssl/certs в контейнере из копии хост-машин? Выполнение этого неявно позволяет контейнерам доверять тем же вещам, что и хост.

Я работаю с раздражающим прокси-сервером, который уходит в отставку:(. Что нарушает SSL и делает контейнеры вроде странными для работы.

4b9b3361

Ответ 1

Установите сертификаты на контейнер Docker с помощью -v:

docker run -v /host/path/to/certs:/container/path/to/certs -d IMAGE_ID "update-ca-certificates"

Ответ 2

Я пытаюсь сделать что-то подобное этому. Как отмечалось выше, я думаю, что вы захотите создать новое изображение с пользовательским Dockerfile (используя изображение, которое вы вытащили в качестве базового изображения), ADD ваш сертификат, а затем RUN update-ca-certificates. Таким образом, вы будете иметь согласованное состояние каждый раз, когда вы запускаете контейнер из этого нового изображения.

# Dockerfile
FROM some-base-image:0.1
ADD you_certificate.crt:/container/cert/path
RUN update-ca-certificates

Скажем, docker build против этого файла Docker, созданного IMAGE_ID. В следующем docker run -d [any other options] IMAGE_ID контейнер, запущенный этой командой, будет иметь вашу информацию о сертификате. Простой и воспроизводимый.

Ответ 3

Как было предложено в комментарии выше, если хранилище сертификатов на хосте совместимо с гостем, вы можете просто установить его напрямую.

На хосте (и контейнере) Debian я успешно выполнил:

docker run -v /etc/ssl/certs:/etc/ssl/certs:ro ...

Ответ 4

Ищу что-то похожее в Windows. Я хочу смонтировать сертификат: /localmachine/мой том от хоста к контейнеру.

Как узнать путь к хосту и месту назначения для хранилища локального компьютера, понятный в файле Docker

ИЗ ХХ ОБЪЕМА ["cert: /localmachine/my", "cert: /localmachine/my"] WORKDIR XX