docker笔记(二):镜像、容器数据卷

四、 docker镜像

4.1 镜像

镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、库、环境变量和配置文件 所有的应用,直接打包docker镜像就可以直接跑起来

你可以创建自己的镜像,也可以只使用其他人创建并在Docker Hub中发布的镜像。要构建自己的镜像,需要创建一个Dockerfile,使用简单的语法定义创建和运行镜像所需的步骤。Dockerfile中的每一条指令都会在图像中创建一个层。当你更改Dockerfile并重新构建镜像时,只有那些已经更改的层才会重新构建。与其他虚拟化技术相比,这是镜像如此轻量级、小巧和快速的原因之一。

4.2 分层

所有docker镜像都起始于一个检查镜像层,当进行修改或增加新的内容时,就会在当前镜像层之上,创建新的镜像层

4.3 commit镜像

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

docker commit #提交容器成为一个新的副本
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG(版本)]

4.4 镜像发布

发布到DockerHub或其他仓库。步骤略。

4.5 镜像私有库

  1. 下载镜像Docker Registry:docker pull registry

  2. 运行私有库Registry,相当于本地有个私有Docker hub

    docker run -d -p 5000:5000 -v /sunxiao/myregistry/:/tmp/registry --privileged=true registry
  3. 案例演示创建一个新镜像,ubuntu安装ifconfig命令

    #用ubuntu镜像启动一个ubuntu容器
    docker run -it ubuntu
    #容器启动后依次执行
    apt-get update
    apt-get install net-tools
    #commit镜像
    docker commit -m="ifconfig add" -a="sunxiao" 容器id sxubuntu:1.2
  4. curl验证私服库上有什么镜像

    curl -XGET http://127.0.0.1:5000/v2/_catalog
  5. 将新镜像sxubuntu:1.2修改符合私服规范的Tag,指定该镜像属于私有仓库。

    #语法:docker tag <原始镜像ID或名称>:<版本号> <私有仓库地址>/<镜像名称>:<版本号>
    docker tag sxubuntu:1.2 192.168.122.1:5000/sxubuntu:1.2
  6. 修改配置文件使之支持http

    #打开配置文件
    vim /etc/docker/daemon.json
    #添加配置
    "insecure-registries":["192.168.122.1:5000"]
    #如果不生效,重启docker
    systemctl restart docker
    #重启Registry
  7. push推送到私服库

    docker push 192.168.122.1:5000/sxubuntu:1.2
  8. curl验证私服库上有什么镜像2

五、 容器数据卷

Docker容器产生的数据,如果不备份,那么当容器实例删除后,容器内的数据自然也就没有了。

为了能保存数据在docker中我们使用卷。

特点:

  • 数据卷可在容器之间共享或重用数据

  • 卷中的更改可以直接实时生效

  • 数据卷中的更改不会包含在镜像的更新中

  • 数据卷的生命周期一直持续到没有容器使用它为止:停止容器后再启动依旧有效

#方式一:直接使用命令挂载   -v
docker run -it --privileged=true -v 主机目录:容器内目录 镜像名
#容器内只读
docker run -it --privileged=true -v 主机目录:容器内目录:ro 镜像名
docker run -it -v /home/test_docker:/home centos /bin/bash
  • 拓展:匿名挂载和具名挂载

#-v 容器内路径   #匿名挂载
#-v 卷名:容器内路径    #具名挂载
#-v /宿主机路径::容器内路径   #指定路径挂载
​
#例 匿名挂载
docker run -d -P --name nginx01 -v /etc/nginx nginx
#查看所有volume的情况
docker volume ls
#具名挂载:通过 -v 卷名:容器内路径
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
#查看这个卷
docker volume inspect jumming-nginx
​
#所有的docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/xxxx/_data
#我们通过具名挂载可以方便的找到我们的一个卷,大部分情况使用具名挂载

5.1数据卷应用

  • 数据卷继承和共享

    1. 容器1完成与宿主机的映射,以ubuntu作为容器为例

      docker run -it --privileged=true -v /mydocker/u:/tmp/u --name u1 ubuntu
    2. 容器2继承容器1规则,例

      docker run -it --privileged=true --volumes-from u1 --name u2 ubuntu
    3. 通过1、2实现了容器1、2数据共享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/595983.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日一题(leetcode287):寻找重复数--二分查找+思维

思路&#xff1a;看官方解答 class Solution { public:int findDuplicate(vector<int>& nums) {int nnums.size();int left1;int rightn-1;int ans-1;while(left<right){int mid(leftright)/2;int count0;for(int j0;j<n;j){if(nums[j]<mid){count;}}if(co…

深度剖析扫雷游戏的各个知识点(1)

哈喽&#xff0c;小伙伴&#xff0c;大家好&#xff0c;今天我来水一篇文章。害&#xff0c;也不算真的水吧&#xff0c;这次带大家深度剖析初次写扫雷游戏程序时还未接触到的知识点。废话不多说&#xff0c;直接进入正题 不知小伙伴们是否还记得当时我说过扫雷游戏我们是以多个…

数据结构初阶:顺序表和链表

线性表 线性表 ( linear list ) 是 n 个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串 ... 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性…

【第十七篇】使用BurpSuite实现客户端控制绕过(实战案例)

某些应用程序依赖客户端提交到服务器的数据进行操作&#xff0c;但用户可以完全控制客户端。 典型案例&#xff1a;0元购甚至账户增值等。 如图&#xff0c;点击添加购物车时抓包&#xff0c;修改价格参数为1&#xff1a; 单击放行之后再取消拦截&#xff0c;购物车界面价格发…

90天玩转Python—04—基础知识篇:Python编程基础:标识符、保留字、注释、多行语句、print输出以及模块导入详解

90天玩转Python系列文章目录 90天玩转Python—01—基础知识篇:C站最全Python标准库总结 90天玩转Python--02--基础知识篇:初识Python与PyCharm 90天玩转Python—03—基础知识篇:Python和PyCharm(语言特点、学习方法、工具安装) 90天玩转Python—04—基础知识篇:Pytho…

C++——特殊类设计

目录 前言 一&#xff0c;请设计一个不能被拷贝的类 二&#xff0c;请设计一个只能在堆上创建对象的类 2.1 思路一&#xff1a;构造函数私有 2.2 思路二&#xff0c;析构函数私有 三&#xff0c;请设计一个只能在栈上创建对象的类 四&#xff0c;请设计一个只能创建一个…

Cortex-M7 内存映射

1 前言 如图1所示&#xff0c; Cortex-M7最大支持4GB的内存寻址&#xff0c;并对内存映射(memory map)做了初步的规定&#xff0c;将整个内存空间划分为了多个内存区域(region)。每个内存区域有着既定的内存类型(memory type)和内存属性(memory attribute)&#xff0c;这两者决…

使用 msys2 sshd为 windows 搭建 ssh 服务器

文章目录 概要整体架构流程技术名词解释MSYS2openSSH服务器 技术细节安装 MSYS2 环境安装openSSH配置、启动SSH 小结和扩展 概要 SSH服务器在Linux下的搭建一般的文章讨论的比较多了。在Windows下&#xff0c;我们常用Windows的Linux子系统来搭建ssh服务器。那有没有更好更简洁…

SV学习笔记(五)

文章目录 线程的使用程序和模块什么是线程线程的概念澄清 线程的控制fork并行线程语句块fork…joinfork…join_any等待所有衍生线程停止单个线程停止多个线程停止被多次调用的任务 线程的通信写在前面event事件通知的需求semaphore旗语mailbox信箱三种通信的比较和应用 参考资料…

无人机/飞控--ArduPilot、PX4学习记录(4)

这是一篇碎碎念&#xff0c;零零碎碎的记录了小组准备竞赛的过程&#xff0c;写的挺乱&#xff0c;仅供本人记录学习历程和参考。 本章主要完成的目标&#xff1a;调试地面站 GPS、加速度校准&#xff1b;试飞并炸机 目录 地面站(QGC)安装(*未完成) 地面站Mission Planner 1.…

深度学习理论基础(六)Transformer多头注意力机制

目录 一、自定义多头注意力机制1. 缩放点积注意力&#xff08;Scaled Dot-Product Attention&#xff09;● 计算公式● 原理 2. 多头注意力机制框图● 具体代码 二、pytorch中的子注意力机制模块 深度学习中的注意力机制&#xff08;Attention Mechanism&#xff09;是一种模仿…

Pillow教程09:图片格式(png,jpg,ico等)批量转换+批量修改图片尺寸

---------------Pillow教程集合--------------- Python项目18&#xff1a;使用Pillow模块&#xff0c;随机生成4位数的图片验证码 Python教程93&#xff1a;初识Pillow模块&#xff08;创建Image对象查看属性图片的保存与缩放&#xff09; Pillow教程02&#xff1a;图片的裁…