当前位置: 首页 > 知识库问答 >
问题:

docker - Jenkins在Windows容器中调用Docker命令的配置方法?

韶宏邈
2024-01-23

请问运行在容器内的Jenkins如何配置可以调用docker命令?宿主机是Windows系统。

首先排除制作一个带有docker的Jenkins的镜像,这个办法有点老套。

尝试了一下docker in docker,但是貌似这个方案是基于Linux的。

在Windows上docker本身已经运行于wsl这类的虚拟机中了,如何再映射卷呢?

尝试过docker in docker,但是-v /var/run/docker.sock:/var/run/docker.sock这种命令在Windows的docker无法使用。

共有1个答案

慕容光启
2024-01-23

在Windows上,如果你想让运行在容器内的Jenkins调用Docker命令,一种可行的方法是使用Windows Subsystem for Linux (WSL)和Docker Desktop。

首先,确保你的系统已经安装了WSL和Docker Desktop。然后,按照以下步骤进行配置:

  1. 打开Docker Desktop,并确保它正在运行。
  2. 打开WSL终端。
  3. 创建一个新的目录,用于挂载Docker的宿主目录。例如:
mkdir ~/docker-host
  1. 在Docker Desktop中,打开“Docker Engine”设置,并找到“File sharing”部分。将刚刚创建的目录添加到共享列表中。
  2. 重启Docker Desktop。
  3. 在WSL终端中,创建一个新的Docker容器,并挂载刚刚创建的目录到容器的/var/run/docker.sock路径。例如:
docker run -it --name jenkins-container -v ~/docker-host:/var/run/docker.sock jenkins/jenkins:lts

这将创建一个名为jenkins-container的容器,并将宿主机的~/docker-host目录挂载到容器的/var/run/docker.sock路径。

  1. 现在,你可以在容器内的Jenkins中调用Docker命令了。

请注意,这种方法依赖于WSL和Docker Desktop,并且可能需要根据你的具体需求进行适当的调整。

 类似资料:
  • 我在曼宁的练习中练习docker。 技术配方是关于配置jenkins从站,即docker容器。 以下是jenkins_slave 我使用命令构建docker映像 然后,我使用命令将docker映像作为容器运行 然后,我使用下面的docker命令运行jenkins服务器 以下是节点配置详情 - 然后,我收到一条错误消息,说这个代理处于脱机状态,因为Jenkins未能在其上启动代理进程 下面是错误堆栈

  • 我正在创建Jenkins管道,用于在Docker容器上运行terraform。 注意,我使用--entrypoint=/bin/bash将入口点覆盖到/bin/bash,因为hashiCorp/terraform:full已经定义了一个入口点。

  • 我在运行Windows 7的同一台机器上安装了Jenkins和Docker ToolBox。在运行Jenkins构建时,除了docker之外,所有命令都可以正常工作。当我尝试使用Jenkins在构建步骤中运行docker命令时,它给我错误。 E: \Jenkins\workspace\docker应用程序 但同样的命令适用于windows命令提示符。任何帮助都将不胜感激。

  • 我使用了dockerhub的Jenkins docker图像(https://github.com/jenkinsci/docker) docker build命令已成功执行,容器也已成功启动。 Docker build命令: Docker容器命令: 然后我通过docker run-it myjenkins bash登录到容器。我找不到像config这样的jenkins配置文件。xml,詹金斯。x

  • 我有一个容器,我想停止,但当我做一个它挂起,永远不会停止它。 我试过正常的和

  • 我正在尝试用docker容器中的一个表建立一个数据库。为了正确运行数据库,我需要运行以下命令: bash:--:无效选项db_1用法:bash[GNU long option][option]... db_1 bash[GNU long option][option]脚本-文件... db_1 GNU long options: db_1--debugg db_1--debugger\ 如果“ba