Доверие Docker: как подписать изображение, не отправляя его в хранилище
Мы запустили личный реестр докеров, и я пытаюсь использовать нотариуса для добавления подписи к изображениям. Я настроил нотариуса, и клиент Docker может подписывать изображения, когда он выдвигается в реестр.
Моя проблема в том, что мы не нажимаем на то же имя реестра, из которого мы извлекаем данные. Мы используем Nexus для размещения наших образов докеров, и это артефакт способа Nexus работать с частным реестром.
Мы нажимаем на docker-registry-публикуем.example.com и вытягиваем с docker-registry.example.com
Мы не можем нажать на docker-registry.example.com
Я не могу найти способ, чтобы докер или нотариус подписали изображение, не нажимая его сначала. То, что я хотел бы иметь возможность сделать что-то вроде этого:
docker push docker-registry-publish.example.com/team1/app1:1.0
docker tag docker-registry-publish.example.com/team1/app1:1.00 docker-registry.example.com/team1/app1:1.0
$some_way_to_sign docker-registry.example.com/team1/app1:1.0
Нет команды 'docker sign', единственный способ для docker подписать изображение, насколько я знаю, это нажать. "Нотариусу" нужен файл, и я не знаю, как передать ему изображение докера.
Есть ли способ заставить либо докера, либо нотариуса просто подписать?
Спасибо!
0 ответов
Вот шаги, которые я бы сделал.
Сначала сгенерируйте ключ, используя docker trust key generate
и назови это ${key}
Затем загрузите ключ и добавьте лицо, подписывающее изображение.
docker trust key load --name ${key} ${key}.pub
docker trust signer add --key ${key}.pub ${key} docker-registry-publish.example.com/team1/app1:1.0
Затем создайте образ:
docker build --disable-content-trust=true -t docker-registry-publish.example.com/team1/app1:1.0 .
А затем подпишите изображение:
docker trust sign docker-registry-publish.example.com/team1/app1:1.0
Проверяем ключи и подпись:
docker trust inspect --pretty docker-registry-publish.example.com/team1/app1:1.0
И, наконец, нажимаем:
docker push docker-registry-publish.example.com/team1/app1:1.0