【发布时间】:2022-01-08 02:05:05
【问题描述】:
由于我在 dockerhub 上找不到具有 maven 3.8.1 的 docker 映像,打开 jdk 11 并安装了 docker,因此我尝试使用 Dockerfile 创建一个。我对此很陌生,因此面临问题。下面是我的 Dockerfile 的样子
FROM maven:3.8.1-adoptopenjdk-11
RUN apt update -y
RUN apt install -y curl
RUN curl https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz | tar xvz -C /tmp/ && mv /tmp/docker/docker /usr/bin/docker
RUN docker ps
当我执行docker build -t demo . 时,我得到以下错误日志
docker/docker-containerd
38 27.1M 38 10.3M 0 0 18.5M 0 0:00:01 --:--:-- 0:00:01 18.5Mdocker/docker-proxy
docker/docker-containerd-ctr
docker/dockerd
docker/docker-runc
100 27.1M 100 27.1M 0 0 19.7M 0 0:00:01 0:00:01 --:--:-- 19.7M
Removing intermediate container f4cd71aa05d2
---> 7b0055db2e58
Step 5/5 : RUN docker ps
---> Running in 83919a2985bf
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
我的目标是创建一个可用于 jenkins 管道的 Dockerfile,以构建一个 maven spring boot 项目 (mvn spring-boot:build-image)。有人可以指导我使用 Dockerfile 吗?
谢谢。
【问题讨论】:
-
运行 docker-in-docker 时,您将主机 docker 套接字映射到容器中,以便它可以访问它。但这仅在运行容器时有效。我认为在构建期间没有任何方法可以像您尝试的那样访问它。
-
当 jenkins 执行我的管道脚本时,我也可以在运行时执行此操作。基本上我需要为 jenkins 提供一个安装了 maven、jdk 11 和 docker 的 docker 镜像。如果我在运行时在 docker 中运行 docker,你能告诉我我的 Dockerfile 应该是什么样子吗? docker run 命令应该是什么样子?
标签: docker dockerfile docker-in-docker