一、需求

当某个镜像无法直接满足需求时,就可以在这些镜像的基础上修改,然后保存为新的镜像。

实例:在镜像busybox:latest的基础上,新增了一个hello.txt文件,形成一个镜像busybox:v1

二、拉取最新镜像,创建容器,对容器进行修改

# 拉取busybox:latest镜像,并新建容器container1,最后在容器里新建了一个文件hello.txt
docker run --name container1 busybox touch hello.txt

三、将“对容器的修改”保存为镜像

docker commit [OPTIONS] CONTAINER [镜像名]
  • [OPTIONS]:命令选项,其中--author指定作者,--message制定commit的信息;
  • CONTAINER:需要commit的容器;
  • 镜像名:新镜像的名字,以<仓库名>:<标签>的方式来指定。如果不显示设置,将默认为None:None。(这个代表没有指定镜像名)

本例为:

# 将container1容器保存为busybox:v1镜像
docker commit container1 busybox:v1

查看效果

# docker exec进入了该容器内部,实际上就是进入容器另开一个终端。
# 若报错,可将/bin/bash修改为/bin/sh
docker run -it --name container5 busybox:v1 /bin/bash# 查看所有文件
ls

四、使用commit定制镜像的缺陷

在实际的环境中,一般不会使用Commit去构建一个镜像:

1. 由于commit会将对容器做出所有的修改都保存为镜像,换句话说,就是在原有镜像的基础上,再叠加上容器的存储层(该存储层仅仅保存了容器所做的修改),将这些内容构成一个新的镜像。

2. docker commit意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为黑箱镜像,换句话说,就是除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根本无从得知。

更好的定制镜像的方法:Dockerfile!!

参考:https://www.educoder.net/shixuns/4uyn5ebp/challenges

Docker教程小白实操入门(7)--基于Commit定制镜像相关推荐

  1. Docker教程(一)入门教程

    1.什么是 Docker 官网的介绍是"Docker is the world's leading software container platform." 官方给Docker的 ...

  2. 配置 Docker 镜像加速 -小白实操记录

    Docker 国内仓库和镜像 由于网络原因,我们在pull Image 的时候,从Docker Hub上下载会很慢...所以,国内的Docker爱好者们就添加了一些国内的镜像(mirror),方便大家 ...

  3. 靠推广电话卡月入过万,适合新人小白实操的好项目,保姆级教程分享

    在如今这个信息化时代,手机已经成为了人们生活中必不可少的一部分.而随着通讯技术的不断发展,电话卡也成为了人们日常生活中必不可少的一部分.而推广电话卡成为了一种新的赚钱方式,许多人通过推广电话卡月入过万 ...

  4. 小白实操ESP8266AT固件烧录,版本1.7.1,希望对爱玩ESP8266的开发小伙伴有帮助!

    从官方网站下载esp8266的AT固件,版本1.7.1.烧录到开发板中,使用AT指令操作esp8266 任务列表 1.重启模块: 2.查询固件版本号: 3.修改波特率为9600: 4.扫描当前环境可被 ...

  5. 文件系统 fsck和e2fsck使用-小白实操记录

    1 区别 e2fsck只是针对ext2.ext3.ext4等ext系列文件系统的工具,fsck支持检查各种不同的文件系统,包含ext系列文件系统. 2 e2fsck命令 指令:e2fsck 使用权限 ...

  6. idea设置console控制台显示内容大小-小白实操记录

    操作步骤如下 File-Settings→Editor→General→Console

  7. IDEA如何删除项目-小白实操记录

    1 项目名称上右击,点击"Remove Module"删除: 2 关闭IDEA 移除后删除 idea文件夹即可

  8. ntp 服务端配置(/etc/ntp.conf配置详解) -小白实操记录

    1 ntp 安装查看 1.1 安装命令 apt-get install ntp 1.2 查看服务是否启动 service --status-all 或者 ps -aux | grep ntp 1.3 ...

  9. Ubuntu 设置timesyncd时间同步、时区、 NTP同步对时-小白实操记录

    1 timesyncd时间同步 Ubuntu 内置了时间同步,默认情况下使用systemd的timesyncd服务激活. 查找服务器上date最基本命令是date . 任何用户都可以输入此命令来打印日 ...

  10. linux上下行网速测试-小白实操记录

    speedtest是一个使用python编写的命令行脚本,通过调用speedtest.net测试上下行的接口来完成速度测试.最后我会测试运维生存时间所在服务器的外网速度. 需要python2.4-3. ...

最新文章

  1. linux 信号 core,Shell 信号发送与捕捉
  2. 现代控制理论第八版第二章读书笔记
  3. android adb 传文件大小,使用adb在电脑和手机间传文件
  4. HarmonyOS之深入解析视频的功能和使用
  5. [洛谷P1074] 靶形数独
  6. 使用WCF建立起Silverlight客户端与服务端的桥梁
  7. SpringSecurity系列(一) 初识 Spring Security
  8. resiprocate 之repro注册
  9. 分布式服务弹性框架“Hystrix”实践与源码研究(一)
  10. POJ 2492 A Bug's Life
  11. c语言程序有哪几类词汇,c语言是什么 c语言必背词汇有哪些
  12. 第二集 第一魂环 第十三章
  13. 合并多个excel文件数据
  14. DICOM医学图像处理:fo-dicom网络传输之 C-Echo and C-Store
  15. 基于java的幼儿园早教网站
  16. 蓝桥杯龟兔赛跑预测Python(超详细!!)
  17. aspose.slides-15.9.0 将ppt转为pdf,去除水印
  18. Kaggle TMDB 票房预测挑战赛
  19. mdx和mdd格式的词典解析Android JNI方式实现
  20. 项目管理软件用哪个好?推荐这6款项目管理工具

热门文章

  1. js读取json数据(php传值给js)
  2. 原创:软件架构那点事儿(二)
  3. NETSCREEN用L2TP方式建立×××
  4. 【ZT】可行性研究报告编写规范
  5. CF1137E Train Car Selection(单调栈维护凸函数)
  6. 9,求整数的二进制中1的个数《剑指offer》
  7. iOS -一些常用的方法
  8. 【WCF--初入江湖】12 WCF与Ajax编程
  9. Internet 信息服务承载说明 即IIS安装说明
  10. 双色球机器学习线性回归蓝球预测案例