【发布时间】:2018-09-07 07:55:01
【问题描述】:
在创建 Jenkins Docker 容器时,能够连接到 Docker 守护进程非常有用。这样,我可以在 Jenkins 容器中启动 docker 命令。
例如,启动 Jenkins Docker 容器后,我想 'docker exec -it container-id bash' 并启动 'docker ps'。
在 Linux 上,您可以在 /var/run/docker.sock 上使用绑定挂载。在 Windows 上,这似乎是不可能的。解决方案是使用“命名管道”。因此,在我的 docker-compose.yml 文件中,我尝试创建一个命名管道。
version: '2'
services:
jenkins:
image: jenkins-docker
build:
context: ./
dockerfile: Dockerfile_docker
ports:
- "8080:8080"
- "50000:50000"
networks:
- jenkins
volumes:
- jenkins_home:/var/jenkins_home
- \\.\pipe\docker_engine:\\.\pipe\docker_engine
# - /var/run/docker.sock:/var/run/docker.sock
# - /path/to/postgresql/data:/var/run/postgresql/data
# - etc.
使用此文件启动 docker-compose,我收到以下错误:
无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。是 docker 守护进程正在运行吗?
如何设置 docker-compose 文件,以便在启动的容器中使用 docker.sock(或 Docker)?
在 Linux 上,您可以使用类似卷的内容:/var/run/docker.sock:/var/run/docker.sock。这在 Windows 环境中不起作用。当您将此文件夹 (/var) 添加到 Oracle VM Virtualbox 时,它永远不会获得任何 IP。在很多帖子上
【问题讨论】:
-
Windows10 不使用 mobylinux 虚拟机?您将自己的虚拟机设置为 virtualbox 中的主机?
-
看来安装 linux /ubuntu VM 是最好的解决方案。我将开始尝试它。
标签: docker jenkins docker-compose