Как использовать команду docker trust inspect для проверки информации о доверии к образам

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы узнаете, как использовать команду docker trust inspect для проверки информации о доверии, связанной с образами Docker. Вы научитесь проверять данные о доверии для подписанных и неподписанных тегов образов, а также для всех подписанных тегов в репозитории.

Путем выполнения практических упражнений вы получите практический опыт проверки целостности и издателя образов путем проверки их цифровых подписей. Вы научитесь интерпретировать вывод команды docker trust inspect и понять разницу в информации о доверии между подписанными и неподписанными образами. Наконец, вы узнаете, как проверять информацию о доверии для нескольких образов и просматривать вывод в удобочитаемом формате.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/inspect -.-> lab-555251{{"Как использовать команду docker trust inspect для проверки информации о доверии к образам"}} docker/pull -.-> lab-555251{{"Как использовать команду docker trust inspect для проверки информации о доверии к образам"}} end

Проверка информации о доверии для одного подписанного тега образа

На этом этапе вы узнаете, как проверить информацию о доверии для одного подписанного тега образа с помощью команды docker trust inspect. Функция Docker Content Trust позволяет вам проверять целостность и издателя образов, которые вы скачиваете из реестра.

Сначала давайте скачаем подписанный образ. Мы будем использовать образ docker/trusttest, который специально разработан для тестирования функции Docker Content Trust.

docker pull docker/trusttest:latest

Вы должны увидеть вывод, указывающий на то, что образ скачивается.

Теперь мы можем проверить информацию о доверии для этого конкретного тега образа. Для этого используется команда docker trust inspect.

docker trust inspect docker/trusttest:latest

Вывод этой команды покажет вам детали о подписях, связанных с тегом образа. Это включает в себя подписчиков и их ключи. Если образ подписан, вы увидите информацию о подписях. Если он не подписан, вывод будет указывать на то, что информация о доверии не найдена.

Проверка информации о доверии для неподписанного тега образа в подписанном репозитории

На этом этапе вы узнаете, как проверить информацию о доверии для неподписанного тега образа в репозитории, содержащем подписанные образы. Это показывает, что даже если в репозитории есть подписанные теги, отдельные неподписанные теги не будут иметь информации о доверии.

Мы продолжим использовать репозиторий docker/trusttest. На предыдущем этапе мы проверили тег latest, который подписан. Теперь давайте попробуем проверить тег, который известно, что он неподписан в том же репозитории. Для этого мы будем использовать тег unsigned.

Сначала давайте попробуем скачать тег unsigned.

docker pull docker/trusttest:unsigned

Вы должны увидеть вывод, указывающий на то, что образ скачивается.

Теперь давайте проверим информацию о доверии для тега unsigned с помощью команды docker trust inspect.

docker trust inspect docker/trusttest:unsigned

При выполнении этой команды вы, скорее всего, увидите вывод, указывающий на то, что информация о доверии для этого конкретного тега не найдена. Это происходит потому, что тег unsigned, несмотря на то, что находится в репозитории с подписанными тегами, сам по себе не имеет действительной подписи. Это подчеркивает, что функция Docker Content Trust работает на уровне каждого отдельного тега.

Проверка информации о доверии для всех подписанных тегов в репозитории

На этом этапе вы узнаете, как проверить информацию о доверии для всех подписанных тегов образов в определенном репозитории. Это полезно для получения общего представления о том, какие теги в репозитории являются надежными.

Мы продолжим использовать репозиторий docker/trusttest. На предыдущих этапах мы рассматривали отдельные теги. Теперь мы проверим весь репозиторий, чтобы увидеть все подписанные теги.

Для проверки всех подписанных тегов в репозитории используйте команду docker trust inspect, за которой следует имя репозитория без указания конкретного тега.

docker trust inspect docker/trusttest

При выполнении этой команды в выводе будут перечислены все теги в репозитории docker/trusttest, для которых есть действительная информация о доверии. Вы должны увидеть информацию для тега latest (который мы подтвердили как подписанный на этапе 1) и, возможно, другие подписанные теги, если они существуют в этом репозитории. Неподписанные теги, как тег unsigned, который мы рассмотрели на этапе 2, не будут отображаться в этом выводе.

Эта команда предоставляет удобный способ быстро узнать, какие версии образа в репозитории считаются надежными в соответствии с функцией Docker Content Trust.

Проверка информации о доверии для нескольких образов

На этом этапе вы узнаете, как проверить информацию о доверии для нескольких тегов образов с помощью одной команды docker trust inspect. Это полезно, когда вы хотите проверить статус доверия сразу для нескольких конкретных образов.

Мы проверим информацию о доверии как для подписанного тега latest, так и для неподписанного тега unsigned из репозитория docker/trusttest одной командой.

Для проверки нескольких образов просто перечислите имена образов (включая тег) после команды docker trust inspect, разделяя их пробелами.

docker trust inspect docker/trusttest:latest docker/trusttest:unsigned

При выполнении этой команды в выводе будет показана информация о доверии для каждого указанного тега образа. Вы должны увидеть детали подписи для docker/trusttest:latest и уведомление о том, что информация о доверии для docker/trusttest:unsigned не найдена. Это подтверждает, что вы можете эффективно проверить статус доверия нескольких образов за одну операцию.

Проверка информации о доверии в удобочитаемом формате

На этом этапе вы узнаете, как отобразить информацию о доверии в более удобочитаемом формате, используя флаг --pretty с командой docker trust inspect. По умолчанию вывод находится в формате JSON, который полезен для скриптинга, но менее удобен для быстрого просмотра человеком.

Мы снова проверим информацию о доверии для подписанного образа docker/trusttest:latest, но на этот раз добавим флаг --pretty.

docker trust inspect --pretty docker/trusttest:latest

При выполнении этой команды вывод будет отформатирован таким образом, чтобы его было легче прочитать и понять. Обычно информация будет представлена в виде таблицы, в которой четко показаны детали об образе, подписчиках и их ключах.

Сравнив этот вывод с выводом в формате JSON по умолчанию из этапа 1, вы увидите, как флаг --pretty делает информацию о доверии более доступной для просмотра человеком. Это особенно полезно, когда вы вручную проверяете статус доверия образа.

Резюме

В этом практическом занятии мы научились использовать команду docker trust inspect для проверки информации о доверии к образам. Мы начали с проверки данных о доверии для одного подписанного тега образа, изучив детали связанных подписей и подписчиков. Затем мы исследовали, как проверка неподписанного тега образа в подписанном репозитории показывает, что только подписанные теги имеют информацию о доверии.

Мы углубили свои знания, проверив информацию о доверии для всех подписанных тегов в репозитории и для нескольких образов одновременно. Наконец, мы научились отображать информацию о доверии в более удобочитаемом формате, что облегчает интерпретацию деталей подписания. Эти шаги дали практический опыт в проверке целостности и издателя Docker-образов с использованием Docker Content Trust.