docker的commit和容器数据卷

2023-05-16

commit镜像

docker commit  提交容器成为一个新的副本
# 命令和git原理相似
docker commit -a="作者"  -m="提交的描述信息" 容器id  目标镜像名字:[tag]

实战测试

# 1、启动一个默认的tomcat
docker pull tomcat
docker run -d -p 3355:8080 --name  tomcat01 tomcat
# 2、发现这个默认的tomcat是没有webapps应用的,镜像的原因,官方的镜像默认webapps 下面是没有文件的!
# 3、把webapp.dist 下面的文件都拷贝到webapps下面
	# 3.1 进入容器
	docker exec -it tomcat01 /bin/bash
	# 3.2 拷贝
	cp -r webapps.dist/* webapps
# 4、提交成为本地镜像
docker commit -a="wkf" -m="add webapps app" 7fc2d95fbc60 tomcat02:1.0

在这里插入图片描述

总结一下

如果想要保存当前容器的状态,就可以通过commit来提交,获得一个镜像

容器数据卷

容器的持久化和同步操作!容器之间也是可以共享

方式一:直接使用命令挂载 -v

docker run -it -v 主机目录:容器内目录
# 测试
[root@wkf home]# docker run -it -v /home/ceshi:/home centos /bin/bash
# 查看当前容器的卷是否挂载成功  需要在容器外操作
[root@wkf ~]# docker inspect 00e843f128ce

在这里插入图片描述
测试文件之间的同步
在这里插入图片描述

关闭容器再测试

1、停止容器
2、宿主机上修改文件
3、启动容器
4、观察容器内的数据是否同步
在这里插入图片描述

具名和匿名挂载

匿名挂载

-v  容器内路径
docker run -d -p 3344:80 --name nginx01 -v /etc/nginx nginx 

# 查看所有的volume 的情况
[root@wkf980120 conf]# docker volume ls
DRIVER    VOLUME NAME
local     3cb391132ed39233e743896fda97b833fbd3afd4825b35815f04f1b7c4e58d9f

# 这里发现,这种就是匿名挂载,我们在 -v 只写了容器内路径,乜有写容器外路径

具名挂载

-v  卷名:容器内路径
docker run -d -p 3345:80 --name nginx02 -v rela-nginx:/etc/nginx nginx 

# 查看所有的volume 的情况
[root@wkf980120 conf]# docker volume ls
DRIVER    VOLUME NAME
local     rela-nginx

# 通过 -v  卷名:容器内路径
# 查看这个卷
[root@wkf980120 conf]# docker volume inspect rela-nginx
[
    {
        "CreatedAt": "2022-07-10T21:01:56+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/rela-nginx/_data",
        "Name": "rela-nginx",
        "Options": null,
        "Scope": "local"
    }
]

所有的docker容器内的卷,没有指定目录的情况下都是在 /var/lib/docker/volumes/xxxx/_data

通过具名挂载可以方便的查询找到我们的卷,大多数情况使用具名挂载

# 如何确定是匿名挂载还是具名挂载,还是指定路径挂载
-v  容器内路径			  # 匿名挂载
-v  卷名:容器内路径		  # 具名挂载
-v  /宿主机路径:容器内路径  # 指定路径挂载

拓展:

# 通过 -v  容器内路径:ro 或rw  改变读写权限
ro read only 	# 只读
rw read write	# 可读可写
# 一旦设置了容器权限,容器对我们挂载出来的内容就有限定了  
docker run -d -p 3345:80 --name nginx02 -v rela-nginx:/etc/nginx:ro nginx
docker run -d -p 3345:80 --name nginx02 -v rela-nginx:/etc/nginx:rw nginx

Dockerfile挂载

Dockerfile 就是用来构建 docker镜像的构建文件! 命令脚本
通过这个脚本可以生成镜像,镜像是一层一层的,脚本是一个个的命令,每个命令就是一层!

# 1、创建一个dockerfile文件 vim添加内容
# 文件中的内容  指令(大写)  参数
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "-----end-----"
CMD /bin/bash
# 每个命令都是镜像中的一层
# 2、创建
# -f  文件     -t  镜像名字版本  最后有个 .
docker build -f dockerfile1 -t wkf/centos:1.0 .

查看创建的镜像
在这里插入图片描述

数据卷容器

多个容器之间的数据同步 --volumes-from

1、启动第一个容器
docker run -it --name docker01 wkf/centos:1.0

2、启动第二个容器
# --volumes-from docker01 从docker02 挂载到docker01
# docker01 就是一个数据卷容器
docker run -it --name docker02 --volumes-from docker01  wkf/centos:1.0

3、在docker01 中的volume01 中创建文件,发现直接同步到docker02

实现两个mysql之间数据共享

# mysql01
[root@wkf ~]# docker run -d -p 3310:3306 -v /etc/mysql/conf.d  -v /var/lib/mysql  -e MYSQL_ROOT_PASSWORD=这里写自己的密码  --name mysql01  mysql:5.7

# mysql02
[root@wkf ~]# docker run -d -p 3310:3306 -v /etc/mysql/conf.d  -v /var/lib/mysql  -e MYSQL_ROOT_PASSWORD=这里写自己的密码  --name mysql02 --volumes-from mysql01  mysql:5.7

# 这个时候,可以实现两个容器数据同步

结论

容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止。
但是一旦持久化到了本地,本地的数据是不会被删除的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker的commit和容器数据卷 的相关文章

  • 基于 Matlab/simulink的锂电池建模与仿真——复现论文《基于二阶EKF的锂离子电池SOC估计的建模与仿真》的仿真部分

    运用simulink实现该论文的锂电池建模仿真 1 模型分解1 1 SOC计算模块1 2 RC参数计算模块1 3 电压计算模块1 4 电流生成器 由Singal Builder模块生成 2 建模细节详解2 1 SOC OCV xff1a L
  • Qt使用记录

    Q amp A 1 错误 qt network ssl QSslSocket cannot call 解决 Qt5 12 4 Tools mingw730 64 opt bin下的libeay32 dll和ssleay32 dll拷贝到Qt
  • Keras的自定义lambda层去reshape tensor张量时model保存出错的解决办法

    背景 分割网络在进行上采样的时候我用的是双线性插值上采样的 xff0c 而Keras里面并没有实现双线性插值的函数 xff0c 所以要自己调用tensorflow里面的tf image resize bilinear 函数来进行resize
  • c++ 中 class 和 struct 的区别是什么

    xfeff xfeff C 43 43 中的struct对C中的struct进行了扩充 xff0c 它已经不再只是一个包含不同数据类型的数据结构了 xff0c 它已经获取了太多的功能 struct能包含成员函数吗 xff1f 能 xff01
  • Linux top命令的了解以及使用

    以root权限运行 top 命令后 xff0c 会以全屏的方式显示 xff0c 并且会处在对话的模式 操作实例 root登录之后 xff0c 在命令行中输入 xff1a top xff0c 回车 xff0c 即会以全屏的显示模式显示所有内容
  • 一键激活office,激活windows

    github地址 xff1a https github com massgravel Microsoft Activation Scripts 正文 xff1a Microsoft Activation Scripts MAS A Wind
  • Jupyter not connection to kernel 的解决方案

    不知道什么原因 xff0c 今天启动Jupyter Notebook发现不对经 xff0c 各种警告如 xff1a 内核没有连接什么的 xff0c 然后我试了试用spyder编写Python xff0c 结果一进去也是告诉我 error x
  • svm核函数的理解和选择

    特征空间的隐式映射 xff1a 核函数 咱们首先给出核函数的来头 xff1a 在上文中 xff0c 我们已经了解到了SVM处理线性可分的情况 xff0c 而对于非线性的情况 xff0c SVM 的处理方法是选择一个核函数 xff0c 通过将
  • list indices must be integers or slices, not tuple 解决方案

    解决方案 xff1a 用numpy里的array转化下 xff0c 转成元组 xff1a dataSet 61 np array dataSet 或者也可以将dataSet转化为矩阵 xff1a mat dataSet 两者都可行
  • 回归模型——树回归(理论方面的知识)

    一 xff1a 模型介绍 1 线性回归的薄弱处 xff1a 1 1 需要拟合所有的样本点 xff08 局部加权线性回归除外 xff09 但是当数据拥有众多特征并且特征之间关系十分复杂时 xff0c 构建全局模型的想法就显得太难了 xff0c
  • 二叉树遍历(图解)

    二叉树的顺序存储结构就是用一维数组存储二叉树中的节点 xff0c 并且节点的存储位置 xff0c 也就是数组的下标要能体现节点之间的逻辑关系 gt 一般只用于完全二叉树 链式存储 gt 二叉链表 定义 xff1a lchild data r
  • (hive) Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask解决方案

    解决bug思路 xff1a 出现这个问题说明你的mapreduce input fileinputformat split maxsize设置的太小了 解决方案 xff1a hive default gt set mapreduce inp
  • Ubuntu16.04 server配置记录

    1 安装vmtool 因为没有图形界面 xff0c 这里全部使用命令行操作 xff0c 虚拟机菜单点击安装vmtool工具后 xff0c 需要手动挂载 a mkdir tmp cdrom b mount dev cdrom tmp cdro
  • GCC的编译过程

    今天学习了gcc的编译过程 xff0c gcc是一个交叉平台编译器 xff0c 简单的说就是 xff0c 你可以在一个平台上编译出可以在另一个平台运行的代码 gcc的编译过程细分可以分成四个阶段 一 预处理阶段 预处理阶段有三个功能 有文件
  • 图解GPS原理 为什么需要4颗卫星才能定位,而不是3颗

    转载https blog csdn net hugohong article details 43191597 GPS 是英文Global Positioning System xff08 全球定位系统 xff09 的简称 xff0c 而其
  • Intel CPU,各个系列有什么区别

    CPU作为计算机核心组件 xff0c 直接影响计算机的性能和价格 无论在购买或是组装计算机时 xff0c 选择合适的CPU都是需要首先考虑的问题 以目前的CPU品牌来看 xff0c CPU可以分为Intel xff0c AMD和国产CPU三
  • 链表头结点的作用

    1 防止单链表是空的而设的 当链表为空的时候 带头结点的头指针就指向头结点 如果当链表为空的时候 单链表没有带头结点 那么它的头指针就为NULL 2 是为了方便单链表的特殊操作 插入在表头或者删除第一个结点 这样就保持了单链表操作的统一性
  • Shikra的PID调参教程

    在论坛里看到的Shikra的PID调参教程 xff0c 自己感觉非常好就转过来供大家一起交流学习 http www rcgroups com forums showthread php t 61 1375728 还有师兄的调PID的整理的文
  • 四旋翼位置控制之-定高篇

    先mark一下 xff0c 争取两周之内写完 由于快要毕业了 xff0c 所以一直都很忙 xff0c 并没有时间写完 xff0c 所以拖到现在 xff0c 不好意思 现在开始介绍四旋翼定高以及调试过程 首先介绍下四旋翼的模型 图中为 四旋翼
  • 四元数、欧拉角和方向余弦的定义及关系

    目前 xff0c 描述两个坐标系之间关系的常用方法主要有欧拉角法 方向余弦矩阵法和四元数法 因此要弄懂这三种方法的定义及关系 xff0c 我们必须先从坐标系转化开始了解 下面以四旋翼为例 xff0c 定义两个坐标系 导航坐标系 参考坐标系

随机推荐

  • 四旋翼姿态解算常用的两种算法-互补滤波和梯度下降算法

    上一篇讲了四元数 欧拉角和方向余弦的知识 xff0c 不熟悉的请到这篇博客查看点击打开链接 介绍两种算法前 xff0c 先定义两个坐标系 导航坐标系 参考坐标系 n xff0c 选取东北天右手直角坐标系作为导航坐标系n 载体坐标系 机体坐标
  • 四旋翼位置控制之-GPS水平位置控制

    mark一下 xff0c 争取一周内抽时间写完 感兴趣的朋友可以加我qq讨论 最近事情太多 xff0c 今天争取写完 先给大家介绍一些基本知识 GPS精度因子 xff1a PDOP xff08 Position Dilution of Pr
  • 基于四元数的扩展卡尔曼(EKF)滤波器四旋翼姿态解算详解-1.KF介绍

    先说明一下 xff0c 之前介绍的两种姿态解算算法http blog csdn net wkdwl article details 52119163 互补滤波和入梯度下降姿态解算算法 xff0c 虽然在姿态解算方面效果还比较不错 但是缺点就
  • android开发(一)常见问题

    1 android开发环境 1 添加环境变量名称为 xff1a ANDROID HOME ANDROID HOME 61 D xxx android android sdk 2 下面路径添加到path环境变量里 ANDROID HOME p
  • 基于四元数的扩展卡尔曼(EKF)滤波器四旋翼姿态解算详解-2.EKF介绍

    尽快抽时间写完吧
  • Linux环境安装RabbitMQ

    RabbitMQ Linux环境安装 检查当前linux服务器的版本 lsb release a 官网下载安装包 xff1a https www rabbitmq com download html 1 2 3 选择对应的安装环境 4 对照
  • MySQL的安装

    MySQL的安装 1 下载 网址 xff1a https dev mysql com downloads mysql 2 下载5 7版本 xff08 1 xff09 xff08 2 xff09 xff08 3 xff09 3 配置环境变量
  • Nginx windows server 2012部署过程

    部署静态网页到服务器 今天做了一个静态网页 xff0c 想部署带到自己的阿里云服务器 通过查询可以使用tomcat容器或者nginx xff0c 主流方式是nginx部署 xff0c 记录一下自己部署的过程 一 nginx简介 Nginx
  • 点击按钮实时刷新图片

    js给 lt img gt 标签的src赋值 最近做一个点击一个按钮刷新加载另一张图片的功能 主要就是改变图的路径 记录一下自己遇到的坑 支持原生的js和jq实现 用js原生方法 xff1a document getElementById
  • RestTemplate的学习与使用

    RestTemplate的学习与使用 最近在开发过程中遇到使用接口传输数据 了解到到RestTemplate 1 源码分析 span class token keyword public span span class token keyw
  • Linux环境下redis的安装

    Linux环境下redis的安装 1 下载redis安装包 服务器上执行以下命令下载redis安装包 cd export software wegt http download redis io releases redis 6 2 6 t
  • Docker的安装

    Docker的安装 1 linux下安装docker xff08 CentOS7 xff09 curl sSL https get daocloud io docker sh 2 查看docker的版本 docker v 3 启动 关闭do
  • Redis的应用场景

    1 String操作 xff08 1 xff09 计数器 incr artcle readconunt 文章id get artcle readconunt 文章id 2 Hash操作 1 对象缓存 hmset user 1 name li
  • nginx在linux环境安装

    1 安装依赖包 yum install pcre pcre devel y yum install openssl openssl devel y 2 官网下载安装包传到linux环境 安装包存放位置 export software 解压目
  • 开发杂谈(一)常见问题

    1 github 1 从GITHUB下载慢而且容易中断解决办法 1 从GITHUB下载慢而且容易中断解决办法 将github项目导入到码云网 xff08 https gitee com xff09 然后再下载会很快 xff0c 登录码云网后
  • Windows证书函数

    C语言操作WINDOWS系统存储区数字证书相关函数详解及实例 以下代码使用C 43 43 实现遍历存储区证书及使用UI选择一个证书 使用 CertOpenSystemStore打开证书存储区 在循环中 使用CertEnumCertifica
  • 使用Docker安装RabbitMQ

    1 yum 包更新到最新 yum update xff08 2 xff09 安装需要的软件包 xff0c yum util 提供yum config manager功能 xff0c 另外两个是devicemapper驱动依赖的 yum in
  • docker的安装及常用命令

    安装Docker 官网地址 https www docker com 文档地址 https docs docker com Dockerhub仓库地址 https hub docker com 名词解释 镜像 xff08 image xff
  • docker安装部署一些软件(nginx、tomcat、mysql、es)

    linux防火墙相关操作 systemctl restart firewalld service span class token comment 重启服务 span systemctl start firewalld span class
  • docker的commit和容器数据卷

    commit镜像 span class token function docker span commit 提交容器成为一个新的副本 span class token comment 命令和git原理相似 span span class t