1、Docker镜像是什么?

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

2、Docker镜像加载原理

docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS。

bootfs(boot file system)主要包含bootloader和kernel, bootloader主要是引导加载kernel, Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。

rootfs (root file system) ,在bootfs之上。包含的就是典型 Linux 系统中的 /dev, /proc, /bin, /etc 等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等等。

UnionFS(联合文件系统)

Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。Union 文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

3、Docker镜像的特点

Docker镜像都是只读的

当容器启动时,一个新的可写层被加载到镜像的顶部。

这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。

4、Docker 镜像Commit

docker commit 提交容器副本使之成为一个新的镜像

docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]

运行一个Nginx容器:

docker run -it -p docker对外暴露的端口:容器中运行的程序的端口 nginx

修改里面的内容后做成新镜像:

docker commit -m=“修改配置后的Nginx” -a=“Tao者” 容器ID 要创建的目标镜像名:[标签名]

docker run -it -p 80:80 要创建的目标镜像名:[标签名]

最新文章

  1. SYN Flood应如何应对
  2. oslo.messaging 1.8.0 bug fix and blueprint
  3. IOS UIScrollView + UIButton 实现segemet页面和顶部标签页水平滚动效果
  4. PLSQL 的简单命令之二
  5. LTIB常用命令2
  6. js showModalDialog打开新的页面给原页面传值问题
  7. 汉字转拼音的Java类库:JPinyin
  8. 【Linux命令】--(9)其他常用命令
  9. Redis 安装与初体验
  10. 对JavaScript中变量类型的重新理解
  11. 【有意思的BUG】需要停止的进程
  12. zTree节点重叠或者遮挡
  13. ssh框架搭建出现的异常: class com.my.entity.user not found while looking for property: id
  14. Notepad++使用vs2015主题教程
  15. BeautifulSoup重点复习
  16. 使用Navicat Premium 链接本地数据库的方法(二)
  17. Beta冲刺(2/7)
  18. 【CentOS】自定义服务添加
  19. liunx vi 学习
  20. Springboot --- Spring Security (一)

热门文章

  1. C#取汉字首字母,汉字全拼
  2. SpringSecurity-Shiro-初见
  3. 了解HTTP基本知识板块
  4. 网络游戏逆向分析-6-使用背包物品call
  5. HTML+CSS登录界面,有数据库的登录验证
  6. 有个计算机专业的学妹问我:我这个zip文件密码破解运行起来为什么内存爆了?
  7. PHP的CLI命令行运行模式浅析
  8. dede5.7 给栏目添加上缩略图
  9. 学习laravel总结中...
  10. python学习笔记(十二)-网络编程