Сканирование локального образа докера на наличие уязвимостей с помощью Trivy дает несанкционированные
Я вытащил образ докера из частного репозитория в локальный и пытался сканировать локальный образ с помощью команды trivy image. Он извлекает базу данных, но показывает неавторизованную ошибку для доступа к локальному изображению
scan error: unable to initialize a scanner: unable to initialize a docker scanner: 3 errors occurred:
* unable to inspect the image (index.docker.io/library/58625f3e2b28:latest): Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
* unable to initialize Podman client: no podman socket found: stat podman/podman.sock: no such file or directory
* GET https://index.docker.io/v2/library/58625f3e2b28/manifests/latest: UNAUTHORIZED: authentication required; [map[Action:pull Class: Name:library/58625f3e2b28 Type:repository]]
Docker deamon запущен, и образ также находится в локальном. Мелкая версия: 0.22.0
2 ответа
В официальной документации указано, что вам необходимо смонтировать сокет Docker, если вы хотите сканировать образ на своем хост-компьютере.
Тогда команда будет выглядеть так:
docker run -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy image <<imagename>>
В моем случае у меня было"userns-remap": "default"
в/etc/docker/daemon.json
, поэтому мне просто нужно было добавить--userns=host
Триви:
docker run \
--userns=host \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/trivy_cache:/tmp/trivy \
aquasec/trivy \
--cache-dir /tmp/trivy/ \
image my-local-image
Эта проблема также обсуждается здесь: https://github.com/aquasecurity/trivy/issues/580 .