Я просто раскручиваюсь свежий экземпляром Ubuntu, и я установил DockerDocker здания Докер изображение: Разрешение/Принимающие Вопросы
docker --version
отчеты: Docker версия 1.7.1, встроенная 786b29d
Я побежал два команды для установки на CI/CD трубопровода:
docker run -d -t -p 8153:8153 gocd/gocd-server
- для агента, я начинаю его следующим образом:
docker run -d --privileged=true -ti -e GO_SERVER=<my_server_ip_address> -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/bin/docker gocd/gocd-agent
Оба контейнера и работает, как ожидалось. docker ps
сообщает следующее:
25a7686b8653 gocd/gocd-server "/sbin/my_init" 6 seconds ago Up 5 seconds 0.0.0.0:8153->8153/tcp, 8154/tcp
ec1ede694844 gocd/gocd-agent "/sbin/my_init" 5 second s ago Up 5 seconds
Когда я получить доступ к gocd-agent
, используя следующую команду:
sudo docker exec -i -t ec1ede694844 bash
Я принес в агенте. Внутри я могу использовать команды вроде docker images
без каких-либо проблем.
go-agent
требует от нас, чтобы использовать go
пользователя, поэтому, используя тот же терминал/контейнер Баш выше, я типа: su go
Это приводит меня в контейнер, как go
пользователя ([email protected]
).
При попытке использовать команду типа docker images
или docker ps
, я получаю следующее сообщение об ошибке:
Get http:///var/run/docker.sock/v1.19/images/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
Единственная команда, которая работает стандартная docker
команда, которая дает мне список возможных которые я могу использовать. Однако ни одна из этих команд не работает при использовании пользователя go
.
Есть ли способ передать разрешения из контейнера в учетную запись пользователя?
Или, есть ли способ для меня сбросить docker.sock
так, чтобы он позволял моему пользователю go
запускать команды вроде docker images
?
Любая помощь будет оценена по достоинству.
Спасибо
Не пытались эти изображения докеров, но когда вы подключаете агент к серверу gocd, почему бы не использовать опцию '--link'? IP-адрес go-сервера go может продолжать меняться. – BMW
Это ошибка разрешения доступа к сокету unix ('/ var/run/docker.sock'). Он не имеет никакого отношения к адресам. – larsks