TL; DR : в вашем агенте Jenkins должен быть Docker.
Следуя описанному выше процессу, я запустил Jenkins, используя последнее jenkins/jenkins
изображение из Docker Hub . Просмотрев файловую систему контейнера, я подтвердил то, о чем спекулировал, в своем комментарии к вашему вопросу: Docker не установлен в контейнере Jenkins. Предполагая, что вы используете главный сервер Jenkins в качестве агента для конвейерной работы, у вас есть пара вариантов, которые приходят на ум:
- Расширьте существующий докер-контейнер - используя что-то вроде
FROM jenkins/jenkins
внутри нового файла докера - чтобы включить ваши зависимости.
- Свяжите существующий демон докера с хоста в среду выполнения контейнера Jenkins.
Хотя я неравнодушен к первому решению, я нашел реализацию второго решения на форумах Docker: « Использование docker в докеризованном контейнере Jenkins » Затем я попробовал это решение и могу подтвердить этот Docker присутствует для меня в контейнере Jenkins Master после запуска контейнера Jenkins с помощью следующей команды:
docker run -v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):$(which docker) \
-p 8000:8080 \
-p 50000:50000 \
jenkins/jenkins
Я не уверен, но я мог бы предположить, что могут быть некоторые негативные последствия для безопасности хоста Jenkins Master из-за установки его собственного сокета Docker и исполняемого файла Docker в контейнер; однако, я бы оставил это на усмотрение кого-то более осведомленного о внутренностях Докера. В любом случае, я могу подтвердить, что приведенное выше решение работает.