docker在docker中编写内部docker
我所拥有的: 我正在为CI/CD创建Jenkins(蓝海管道)。我使用docker-in-docker方法来使用Jenkins,如中所述。 我已经测试了设置,工作正常。我可以在Jenkins容器中构建和运行docker映像。现在,我尝试使用docker在docker中编写内部docker,docker,jenkins,docker-compose,docker-in-docker,Docker,Jenkins,Docker Compose,Docker In Docker,我所拥有的: 我正在为CI/CD创建Jenkins(蓝海管道)。我使用docker-in-docker方法来使用Jenkins,如中所述。 我已经测试了设置,工作正常。我可以在Jenkins容器中构建和运行docker映像。现在,我尝试使用docker-compose,但是它说docker-compose:notfound ` 问题: 无法在容器内使用“docker compose”(Jenkins) 我想要什么: 我希望能够使用dind(docker in docker)方法在容器内使用` d
docker-compose,但是它说docker-compose:notfound
`
问题:
无法在容器内使用“docker compose”(Jenkins)
我想要什么:
我希望能够使用dind(docker in docker)方法在容器内使用` docker compose
非常感谢您的帮助。以下是我的工作解决方案:
FROM maven:3.6-jdk-8
USER root
RUN apt update -y
RUN apt install -y curl
# Install Docker
RUN curl https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz | tar xvz -C /tmp/ && mv /tmp/docker/docker /usr/bin/docker
# Install Docker Compose
RUN curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
# Here your customizations...
那台机器似乎没有安装docker compose
。
您可以使用docker compose--version
检查是否安装了docker compose
,
如果未安装,则可以按以下方式安装:
使用apt包管理器:sudo-apt-install-y-docker-compose
或
使用python安装管理器:sudopip安装docker compose
我不是从这个问题上理解的,你是否安装了docker compose
?它通常与Docker分开安装。请看,我正在docker方法中使用docker容器。整个方法可以在问题所附的Jenkins官方文章链接中找到。是的,docker compose
安装在本地,但在容器中不可用。本地安装的东西不会单独出现在容器中。您可以尝试将其安装在内部,但最好将其安装在容器中。因此,您在dockerCompose
文件的开头添加了这些脚本来安装docker compose。对吗?没错,所以每个詹金斯构建都可以执行docker并在自己的docker映像中进行合成。我已经多次使用这种方法了。这种方法好吗?您是否也在docker容器内使用Jenkins,就像我在问题中的文章中提到的方法一样?此外,我能够在容器内使用docker
来构建docker图像。但问题只存在于docker compose
中。因此,按照您的方法,我只需添加docker compose脚本。我有一个docker实例,它构建在docker官方图像的基础上。每个Jenkins管道都会生成自己的docker映像,在其中我安装docker和docker compose以服务于我的自定义构建逻辑。