Jenkins(Docker版)中使用宿主机的Docker

这篇具有很好参考价值的文章主要介绍了Jenkins(Docker版)中使用宿主机的Docker。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前提

(1)宿主机安装好了Docker。

(2)宿主机拉取Jenkins的最新镜像。

场景

使用Jenkins将打包好的镜像推送到远程镜像仓库时,运行docker login命令的时候,控制台报错:docker command not found。

原因

Jenkins容器内部并没有安装Docker,但是我不想在内部再安装一个Docker,而是想直接使用使用宿主机内部的Docker。

思路

将宿主机的Docker引擎挂载到Jenkins容器上,即Jenkins容器调用宿主机的Docker。

挂载内容

-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/bin/docker:/usr/bin/docker

方法

方法一(vim操作,需要细心)

修改配置文件,可参考该文章(2条消息) Docker修改容器挂载目录的三种方式_拉比比比的博客-CSDN博客_docker修改容器挂载

方法二(个人推荐)

关闭原jenkins容器(如果之前开过的话),新开一个容器,但是新增docker挂载内容。

示例:我想创建一个名字为jenkins的容器,暴露端口为8888,jenkins_home在宿主机上的目录是/server/jenkins/home。

创建容器的命令如下:

docker run --name jenkins -d -p 8888:8080 -p 50000:50000 --restart=always -v /server/jenkins/home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:latest

 如果启动失败,且原因是permission denied,原因是宿主机目录和jenkins容器的用户不是一个,使用如下目录授权,目录根据自己设置的宿主机目录自行修改:

chown -R 1000:1000 /server/jenkins/home

 启动成功

docker jenkins 执行宿主机,后端开发,docker,jenkins,容器

 输入如下命令测试jenkins容器内部是否能使用Docker,容器ID根据实际情况自行修改

docker exec -it 242 /bin/bash

 再输入docker info,如图所示即为安装成功

docker jenkins 执行宿主机,后端开发,docker,jenkins,容器

如果出现了permission denied,情况同上,输入如下命令对权限不够的目录进行授权 

chown -R 1000:1000 /var/run/docker.sock

问题解决。文章来源地址https://www.toymoban.com/news/detail-653261.html

到了这里,关于Jenkins(Docker版)中使用宿主机的Docker的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Docker】数据卷挂载以及宿主机目录挂载的使用

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Docker实战》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的加入,一起

    2024年01月16日
    浏览(34)
  • Docker Desktop使用宿主机Windows的配置文件持久化存储数据

    《微软官网Windows 上的 Docker 引擎帮助文档》 以Nginx为例 把Nginx的配置文件复制到Windows 注意:Windows的盘符是小写的,以及目录直接是用反斜杠的!(我掉这坑里好久!!!) 修改宿主机的nginx.conf配置文件 删除nginx容器 重启启动一个新的Nginx容器 访问localhost

    2024年02月09日
    浏览(36)
  • 【Docker】docker容器内获取宿主机的信息和执行宿主机的脚本

    我们可以通过在容器内远程连接宿主机,然后对宿主机进行操作。 注意: 要先安装 sshpass命令才行。 Dockerfile文件可以在你部署容器的时候自动安装。 docker部署springboot项目

    2024年02月11日
    浏览(47)
  • 配置Docker OpenWrt与宿主机网络互通且作为宿主机网关

    最近需要用Docker版的Openwrt作为旁路由(网关),在配置过程中遇到一些问题,通过查阅资料,最终完美解决。现在将整体方案和具体操作步骤贴到这里分享给大家 这里我使用的环境如下: 宿主机操作系统:Armbian 宿主机ip:192.168.5.2 宿主机新macvlan接口ip:192.168.5.3 Docker镜像:

    2024年02月03日
    浏览(60)
  • Docker】容器里面拷文件到宿主机[或]宿主机拷文件到容器里面

    【Docker】容器里面拷文件到宿主机[或]宿主机拷文件到容器里面 - 知乎 答:在宿主机里面执行以下命令 docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 示例: 假设容器名为webnphp,要从容器里面拷贝的文件路为: 现在要将tox.ini从容器里面拷到宿主

    2024年02月06日
    浏览(47)
  • shell脚本使用(宿主机windows-服务器-centos)--用于使用shell脚本方式控制docker容器

    需求: 我想要使得windows上编写shell脚本,并且在这个shell脚本在linux中也可用 shell脚本在windows上无法直接运行,但是有WSL这个linux子系统的工具 可以使得shell脚本在主机上执行 视频讲解连接 方式1 方式2

    2024年02月07日
    浏览(39)
  • 同一台宿主机不同的docker-compose下的容器互相通信;查看docker的network使用情况

    我的 docker 版本: 24.0.2 docker-compose 版本: 1.29.2 linux 是 ubuntu 20.04 在使用 docker 部署环境的时候大多用 docker-compose 来编排,参数的配置会清晰一点。 通常一个容器一个 docker-compose.yml 文件。 这就使得不同 docker-compose 下的容器不能自动的互相通信。 那么顺着这个思路往下想,

    2024年02月08日
    浏览(32)
  • Docker:挂载宿主机的目录

    可以在docker run时通过: -v 宿主机目录:容器内目录 ,挂载宿主机的文件到容器: $ docker run -it -v /tmp/docker_share/:/tmp/share ubuntu /bin/bash 容器启动后,可以在容器里看到目录/tmp/share root@9d2d19b4923c:/tmp/share# touch test root@9d2d19b4923c:/tmp/share# ls test 在宿主机的/tmp/docker_share目录下也可以

    2024年02月09日
    浏览(33)
  • docker与宿主机共享内存通信

    docker中的进程要与宿主机使用共享内存通信,需要在启动容器的时候指定 “–ipc=host” 选项。然后再编写相应的共享内存的程序,一个跑在宿主机上,另一个跑在docker上面。 shm_data.h shm_slave.c makefile shm_data.h shm_master.c makefile Dockerfile 运行时需要先下载docker,获取支持c语言编译

    2024年02月07日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包