【发布时间】:2022-01-22 04:03:01
【问题描述】:
我有一个 Docker 映像,它在我的 Jenkins 流水线中用于执行大量工作,例如构建和运行测试。这些测试使用 docker。该图像在 Jenkins Pipeline 上运行良好。我正在尝试在本地连接到该图像。我已按照以下步骤操作:
1. docker-compose build
2. docker run -it container_name /bin/bash
进入容器后,我想运行使用 docker 的测试并得到以下错误:
connect ENOENT /var/run/docker.sock
另外,我尝试运行 docker ps 我得到了这个:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
对此有何建议?
编辑 1:我的 docker-compose.yml 看起来像:
version: '2.0'
services:
build:
build: .
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
entrypoint: sh
command: >
sh -c "npm install"
Dockerfile:
FROM Imageeee
USER root
WORKDIR /app
COPY ./package*.json ./
RUN npm install
COPY ./ ./
RUN npm run build
【问题讨论】:
-
您使用的帐户是否有足够的权限来运行此命令?
-
@WilkovanderVeen 是的
-
您到底在构建什么,从外观上看,docker 容器中的一个 docker(?),并试图连接到
dind容器内的docker,需要启动首先是容器内部的 docker 守护进程(当您覆盖CMD时)并且假设dind服务作为--priviliged容器 as per the doc 运行。 -
@curious_coder 请用您的
docker-compose.yml规范的副本更新问题。我怀疑因为您覆盖了CMD,所以dockerd进程没有启动,如果它没有启动就无法连接。 -
@masseyb 是的
标签: docker jenkins docker-compose dockerfile docker-container