docker在docker中编写内部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

我所拥有的: 我正在为CI/CD创建Jenkins(蓝海管道)。我使用docker-in-docker方法来使用Jenkins,如中所述。 我已经测试了设置,工作正常。我可以在Jenkins容器中构建和运行docker映像。现在,我尝试使用
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以服务于我的自定义构建逻辑。