Я запускаю Jenkins внутри док-контейнера.
Я использую следующую команду для запуска контейнера:
docker run -p 8080:8080 -p 50000:50000 -v "${PWD}:/var/jenkins_home" -v /var/run/docker.sock:/var/run/docker.sock aemdesign/jenkins
Обратите внимание -v /var/run/docker.sock:/var/run/docker.sock — я сделал это, чтобы иметь доступ к демону докера из Jenkins в соответствии со статьей это.
Я cd в контейнер jenkins, используя docker exec -it <mycontainer> bash
Затем я запускаю docker ps -a, но все еще получаю сообщение об ошибке docker command not found.
Я провел еще несколько исследований в Интернете и узнал о плагине Docker для Jenkins и настроил его для подключения к демону Docker. Я получаю следующую ошибку
Я что-то пропустил? Как решить эту проблему? Обратите внимание, что я делаю это локально на машине MAC.


-v /var/run/docker.sock:/var/run/docker.sock, это просто означает, что ваш контейнер имеет доступ к docker daemon на хосте, а не означает, что ваш контейнер будет иметь docker client.
Вы можете использовать -v $(which docker):/usr/bin/docker, чтобы добавить docker client в свой контейнер, тогда вы найдете команду.
docker run -u root -p 8080:8080 -p 50000:50000 -v $(which docker):/usr/bin/docker -v "${PWD}:/var/jenkins_home" -v /var/run/docker.sock:/var/run/docker.sock aemdesign/jenkins
Другой способ, если вы хотите зарезервировать пользователя jenkins.
docker run -u jenkins:$(cut -d: -f3 < <(getent group docker)) -p 8080:8080 -p 50000:50000 -v $(which docker):/usr/bin/docker -v "${PWD}:/var/jenkins_home" -v /var/run/docker.sock:/var/run/docker.sock aemdesign/jenkins
Я выполнил команду, как вы предложили. Я могу запускать команды docker из контейнера Jenkins, но только тогда, когда я являюсь пользователем root — «docker exec -it -u root <mycontainer> /bin/bash», в противном случае я получаю ошибку отказа в разрешении. В основном я хочу запускать команды докеров из конвейеров jenkins.
Обновите, вы можете использовать -u root для запуска контейнера jenkins или использовать -u jenkins:gid для резервирования пользователя jenkins.
Попробуйте добавить пользователя
jenkinsв группуdocker.