docket镜像
1.是什么
镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。
1.1.什么是UnionFS
Unionfs是一个堆栈式的联合文件系统, 2004年由纽约州立大学石溪分校开 发, 它可以把多个目录(也叫分支)内容合并在一起, 而目录的物理位置是分开的.
Unionfs允许只读和可读写目录并存, 就是说可同时删除和增加内容. Unionfs应用的地方很多, 比如在多个磁盘分区上合并不同文件系统的主目录, 或把几张CD光盘合并成一个统一的光盘目录(归档).
另外, 具有写时复制(copy-on-write)功能Unionfs可以把只读和可读写文件系统合并在一起, 虚拟上允许只读文件系统的修改可以保存到可写文件系统当中.
SLAX是一个 192MB大小的Linux发行版, 目标是为便携设备(如usb闪存或mini-cd)开发一个完整功能的Linux操作系统, 人们可以通过引导光盘(或其它编写媒介)直接使用SLAX Linux.
甚至能在没有硬盘的计算机上运行. Unionfs是SLAX系统的一个重要组成部分, 它使SLAX可做为一个真正的Linux系统(具有可写入的根目录树)来运行. 首先我们来了解unionfs.
参考来源:https://www.phpfans.net/article/htmls/200705/MjM3NjA2.html
总结:其实就像java里面的继承体系,文件是层层依赖的,最外层拥有最内层所有的东西,内层是可以公用的。

1.2.镜像文件结构
1.docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统就是UnionFS;
2.在Docker镜像的最底层是bootfs,然后是rootfs,刚启动的时候,首先加载bootfs文件;
3.当bootfs加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs;

什么是bootfs:
bootfs(boot file system)主要包含bootloader和kernel, bootloader主要是引导加载kernel,不同的Linux 系统 bootfs几乎一样
什么是rootfs:
rootfs (root file system) ,在bootfs之上。包含的就是典型 Linux 系统中的 /dev, /proc, /bin, /etc 等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos.....
为什么docker容器文件很小:
1.因为bootsf几乎一样,可以使用主机的bootfs,而自己只需要提供rootfs;
2.对于一个精简的os,rootfs可以很小,只需要包括最基本的命令、工具和程序库就可以了;
3.自定义容器打包镜像
案例中以打包一个自己的tomcat为例
1.下载tomcat容器
下载8.0.52版本的tomcat
docker pull tomcat:8.0.52
2.启动tomcat容器
回顾之前讲的启动容器:
docker run -it centos /bin/bash
参数介绍:
--name:"容器新名字": 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P: (大写的P)随机端口映射;
-p: (小写的p)指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
假设启动一个tomcat,以后台形式启动,主机中的端口为:8081,容器中的端口为:8080 命令如下:
docker run -d -p 8081:8080 tomcat:8.0.52

3.访问tomcat

4.修改tomcat
1.进入到tomcat容器中;
2.删除ROOT文件中的所有内容
3.写一个自己的index.html

4.再次访问,看自己写的页面是否生效

5.打包为自己的tomcat镜像
docker commit -m='my tomcat image' -a='zhishidi' 08abc713c71e zsd/tomcat:1.0
参数说明:
-m='镜像描述'
-a='镜像作者'
08abc713c71e :容器id
zsd/tomcat:打包后的镜像名称
1.0 :打包后的版本号

6.启动自己的tomcat镜像

7.访问自己的tomcat镜像

完美!
系统化学习docker教程:
https://www.cnblogs.com/newAndHui/p/13508771.html
docket镜像的更多相关文章
- Apache Thrift 的魅力
WhyApacheThrift 因为最近在项目中需要集成进来一个Python编写的机器学习算法,但是我的后端主要使用的是SpringCloud技术栈. 于是面临着异构语言之间的通信实现方式的抉择. 因 ...
- docker系统化学习图文+视频教程
1.背景 博客对应的视频课程: 9.9元在线学习:https://study.163.com/course/courseMain.htm?share=2&shareId=40000000033 ...
- docket打包镜像内部报错
临时记录,后面再完善 对于前端docker一般不太熟悉,当我们想要打包镜像的时候会去找教程,我按着教程去打包一个使用KOA框架搭建的node服务. 这是一个 koa + ts + pm2的项目 结果出 ...
- 和docket的第一次亲密接触
很久很久以前,第一次听说docker时,感觉很高大上,同时自我感觉会很难.所以一直没有详细了解.前一段时间偶尔看到关于docker的详细介绍,于是乎来了兴趣.自已折腾了一下,发现不是想象中的那么难. ...
- Docket 使用命令
Docket 使用命令 查 # 查询当前可以下载的镜像 docker search httpd |_ NAME:镜像仓库源的名称 |_ DESCRIPTION:镜像的描述 |_ OFFICIAL:是 ...
- NuGet镜像上线试运行
为解决国内访问NuGet服务器速度不稳定的问题,我们用阿里云服务器搭建了一个NuGet镜像,目前已上线试运行. 使用NuGet镜像源的方法如下: 1)NuGet镜像源地址:https://nuget. ...
- SQL Server镜像自动生成脚本
SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...
- Android SDK 在线更新镜像服务器资源
本文转自:http://blog.kuoruan.com/24.html.感谢原作者. 什么是Android SDK SDK:(software development kit)软件开发工具包.被软件 ...
- Jexus Web Server 完全傻瓜化图文配置教程(基于Ubuntu 12.04.3 64位)[内含Hyper-v 2012虚拟机镜像下载地址]
1. 前言 近日有感许多新朋友想尝试使用Jexus,不过绝大多数都困惑徘徊在Linux如何安装啊,如何编译Mono啊,如何配置Jexus啊...等等基础问题,于是昨日向宇内流云兄提议,不如搞几个配置好 ...
随机推荐
- JS实现串行请求
使用async和await var fn = async function(promiseArr) { for(let i = 0,len = arr.length; i<len; i++) { ...
- linux中root用户查看所有用户的历史操作命令
转载https://blog.csdn.net/qq_27786919/article/details/91353351 1.创建用户审计文件存放目录和审计日志文件 :mkdir -p /var/lo ...
- oracle之三rman 完全恢复
rman 完全恢复 8.1 recover 恢复: 1)归档 : 完全恢复和不完全恢复 2)非归档:只能恢复到最后一次备份状态(还原) 8.2 完全恢复: ----先对数据库做一个备份(如果是arch ...
- python 3 continue 循环控制
- [LeetCode] 17. 电话号码的字母组合(回溯)
题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23" 输出:[& ...
- Spring Boot 所有相关的配置信息
加载顺序 如上图所示,图片是从官网上截取的,这些配置信息都会加载,只不过顺序在前的会覆盖掉后面的 上图的所有配置信息都会以(key,value)的形式加载到Spring中的Environment中,也 ...
- netty字符串流分包
@Override protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf in, List<Obj ...
- kafka学习(四)kafka安装与命令行调用
文章更新时间:2020/06/07 一.安装JDK 过程就不过多介绍了... 二.安装Zookeeper 安装过程可以参考此处~ 三.安装并配置kafka Kafka下载地址 http://kafk ...
- 刷题 [网鼎杯 2018]Fakebook
解题思路 首先登陆页面发现是这样的: 查看源码 源码很正常,也没有什么特别的 web目录扫描 我用的是dirmap工具扫描,扫描结果保存在一个txt文件中,结果可知没什么后台. robots.txt ...
- 听说这四个概念,很多 Java 老手都说不清
Java 是很多人一直在用的编程语言,但是有些 Java 概念是非常难以理解的,哪怕是一些多年的老手,对某些 Java 概念也存在一些混淆和困惑. 所以,在这篇文章里,会介绍四个 Java 中最难理解 ...