我在安装了Jenkins
的{{1}}容器中运行Docker
。我可以从此容器调用docker.sock
在主机上运行服务吗?我尝试从容器内执行安装脚本,但一直在说
“没有这样的文件或目录”。
docker-compose
答案 0 :(得分:0)
这是可以实现的,但要使其正确就很难。
您需要使用 docker卷装载docker-compose.yml文件在docker主机上的路径,到容器中的完全相同的位置。
因此,如果docker-compose.yml文件位置在docker主机上为/home/leonid/workspace/project1/docker-compose.yml
,则需要为jenkins容器添加卷-v /home/leonid/workspace/project1/:/home/leonid/workspace/project1/
。
然后,在您的詹金斯工作中:
cd /home/leonid/workspace/project1/
docker-compose up -d
为什么?
请记住,docker-compose会向docker引擎提供指令。 docker引擎在docker主机上运行(而不是在Jenkins容器中)。因此,docker-compose给docker引擎的任何路径都必须存在于docker主机上。
答案 1 :(得分:0)
文档中的“作为容器安装”部分对我有用:https://docs.docker.com/compose/install/
sudo curl -L --fail https://github.com/docker/compose/releases/download/1.25.0/run.sh -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose