容器内的Jenkins使用docker部署服务,服务数据文件挂载问题

embedded/2024/11/18 7:45:22/

问题

       docker 容器运行服务更推荐是那种无状态的服务,这样可以做到 “ 开箱即用 ”,需要持久化存储的话使用存储卷挂载数据库文件即可,这都是基于在宿主机上执行的;

        现在Jenkins是在docker容器中运行,并需要使用docker部署服务;在Jenkins容器中如何将部署的项目数据库文件挂载到宿主机呢?这里Jenkins是基于可以控制宿主机docker的情况下,如何做到可以看看我的这篇文章:Docker + Jenkins + gitee 实现CICD环境搭建

 怎么解决?

        这里把问题抽象转化一下:在容器中使用宿主机的docker,启动一个容器,让该容器把指定目录挂载到宿主机;

结合存储卷相关的操作,找到了一个较为有效的方法:

Jenkins容器可以控制宿主机的docker

我们做一个实验测试一下:

先创建一个volume存储卷:

docker volume create mytestvol1
docker volume ls # 查看是否创建成功

启动测试的Jenkins容器,进入Jenkins容器:

docker run -it --name mybusybox -v mytestvol1:/data busybox

 在Jenkins容器中拉取一个busybox镜像并运行,把busybox镜像数据目录挂载到创建的存储卷中:

 这里可以看到文件发生了变化,说明这里是busybox的目录;

验证是否挂载上:

进入busybox容器指定挂载的目录:

 再打开一个终端:

查看一个存储卷信息:

docker inspect mytestvol1

 进入挂载点目录:

cd /data/var/lib/docker/volumes/mytestvol1/_data

 查看目录文件(这里我之前测试过一次,所以有文件):

 返回原来的终端(容器终端),创建文件并写入内容

 

 再次返回新开的终端进行查看:

发现一个新的文件test1,并且内容也是666;这也就说明挂载成功了; 

 在宿主机中删除掉原本的容器,再次启动busybox:

 发现文件还在方法成立;

         Jenkins容器和宿主机共用一个docker,利用这一特性,提前创建存储卷并进行挂载;


以上便是本文的全部内容,希望对你有所帮助,最后感谢阅读!


http://www.ppmy.cn/embedded/138469.html

相关文章

Python 小高考篇(5)自定义函数

目录 def 定义函数传入参数返回值 lambda 定义函数递归自测总结结尾 本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-SA协议。 因此,若需转载/引用本文,请注明作者并附原文链接,且禁止删除/修改本段文字。 违者…

React Hooks 深度解析与实战

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 React Hooks 深度解析与实战 React Hooks 深度解析与实战 React Hooks 深度解析与实战 引言 什么是 Hooks? 定义 为什么需要 Ho…

paddle表格识别数据制作

数据格式 其中主要数据有两个一个表格结构的检测框&#xff0c;一个是tokens&#xff0c;注意的地方是 1、只能使用双引号&#xff0c;单引号不行 2、使用带引号的地方是tokens里面 "<tr>", "<td", " colspan2", ">",&quo…

屏幕拾色器

屏幕拾色器 桌面应用开发中&#xff0c;经常需要用到拾色器&#xff0c;之前一般使用的WEB上的小工具&#xff0c;有些不方便&#xff0c;在网上找的一些小工具又附带一些乱七八糟的东西&#xff0c;故想要自己实现一个小工具。 Qt实现 Qt可以使用Qt Designer工具对ui进行编辑…

vue3字符串转整数

vue3字符串转整数 思路方法代码实现示例 思路方法 在 Vue 3&#xff08;或任何 JavaScript 环境&#xff09;中&#xff0c;将字符串转换为整数可以使用 JavaScript 的内置函数 parseInt()。这个函数可以将一个字符串解析为指定基数的整数。如果不指定基数&#xff0c;默认情况…

Linux运维篇-iscsi存储搭建

目录 概念实验介绍环境准备存储端软件安装使用targetcli来管理iSCSI共享存储 客户端软件安装连接存储 概念 iSCSI是一种在Internet协议上&#xff0c;特别是以太网上进行数据块传输的标准&#xff0c;它是一种基于IP Storage理论的存储技术&#xff0c;该技术是将存储行业广泛…

[Docker#11] 容器编排 | .yml | up | 实验: 部署WordPress

目录 1. 什么是 Docker Compose 生活案例 2. 为什么要使用 Docker Compose Docker Compose 的安装 Docker Compose 的功能 使用步骤 核心功能 Docker Compose 使用场景 Docker Compose 文件&#xff08;docker-compose.yml&#xff09; 模仿示例 文件基本结构及常见…

相机光学(四十二)——sony的HDR技术

1.概述 索尼的HDR技术包括以下几种,这些技术共同构成了索尼在HDR领域的技术矩阵&#xff0c;旨在提供更宽广的动态范围、更丰富的色彩表现以及更真实的光影效果: Multi-frame HDR&#xff08;多帧异曝光HDR&#xff09;&#xff1a;这是一种通过不同曝光时间图像的多帧合成来实…