从Docker容器运行docker-compose

时间:2019-03-10 16:44:15

标签: docker jenkins docker-compose

我在安装了Jenkins的{​​{1}}容器中运行Docker。我可以从此容器调用docker.sock在主机上运行服务吗?我尝试从容器内执行安装脚本,但一直在说

  

“没有这样的文件或目录”。

docker-compose

2 个答案:

答案 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