镜像分层理解实践&docker commit 实操

镜像分层理解实践&docker commit 实操

  • [1 docker commit 命令语法](#1 docker commit 命令语法)
  • [2 实操目标](#2 实操目标)

1 docker commit 命令语法

docker commit命令用于 从运行中的容器提交为镜像,通常是在容器中编辑文件或者扩展新功能后 保存为新镜像

docker commit OPTIONS CONTAINER REPOSITORY\[:TAG]

Options:

-a, --author string Author (e.g., "John Hannibal Smith hannibal@a-team.com")

-c, --change list Apply Dockerfile instruction to the created image

-m, --message string Commit message

-p, --pause Pause container during commit (default true)
常用形式

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

2 实操目标

我们在ubuntu 容器总增加vim 命令后,保存为新镜像,并使用新镜像启动一个新容器

  1. 拉取镜像
bash 复制代码
#拉取ubuntu 镜像
$ docker pull ubuntu:latest
#查看本地镜像
$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
ubuntu       latest    ba6acccedd29   2 years ago   72.8MB
  1. 启动一个ubuntu 容器
bash 复制代码
#启动容器
$ docker run -it --name=ubuntu1 ubuntu /bin/bash
#容器内执行vim 命令 发现没有
root@a077efb7baf7:/$ vim
bash: vim: command not found
  1. 容器内安装vim
bash 复制代码
root@a077efb7baf7:/$ apt-get update
root@a077efb7baf7:/$ apt-get install vim
#创建一个b.txt 文件
root@a077efb7baf7:/tmp$ touch b.txt && echo "124" > b.txt
root@a077efb7baf7:/tmp$ vim b.txt
#确认已经安装好了vim
  1. 提交镜像
bash 复制代码
#在主机上提交镜像
$ docker commit -m="ubuntu add vim" -a="my" a077 myubuntu:vim
sha256:c0ef6bd37906e4f86b149a9296669cc4cd103018d512cf11e5456d40469734f2
$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
myubuntu     vim       c0ef6bd37906   6 seconds ago   189MB
ubuntu       latest    ba6acccedd29   2 years ago     72.8MB
#已经有新镜像myubuntu并且新镜像要比原来的镜像大很多
  1. 运行新的容器
bash 复制代码
#运行新的容器
$ docker run -it --name=myubuntu1  myubuntu:vim  /bin/bash
#查看提交镜像前创建的文件 ,发现还存在
$ cd /tmp
$ cat b.txt 
124
#执行vim命令 确定存在vim
root@b01f01f7d267:/tmp$ vim b.txt
相关推荐
每月一号准时摆烂5 小时前
服务器运维笔记(一)——使用shell编写实时查看BMC功率的脚本
运维·服务器·笔记
时间售卖铺6 小时前
Chrony与SSH实战:精准时间同步与安全远程登录
运维·安全·云原生·ssh
微订校园外卖系统6 小时前
校园代取快递系统选型:现成系统与定制开发的技术核对项
大数据·运维·人工智能·外卖系统·本地生活·微订
QXWZ_IA6 小时前
管道GIS测绘如何实现自动化成图:三种成图方式怎么选
运维·人工智能·安全·自动化
一条破秋裤6 小时前
【1112】Linux中断【整理】
linux·运维·服务器
分布式存储与RustFS6 小时前
OpenObserve 的日志别堆本地盘:用 RustFS 当它的对象存储底座
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
wz97547 小时前
Docker 从 systemd 托管容器、overlay2 存储驱动到 Compose 多容器实战
spring cloud·docker·eureka
新*8 小时前
ES 7.17 三节点 Docker 集群接入 IK 自定义词典:一次从丢插件到热更新的完整排障
运维·elasticsearch·docker·中文分词·ik分词
风翼靓崽8 小时前
jenkins搭建与简单使用
运维·jenkins
小白的码BUG之路9 小时前
Jenkins -- gitee+docker+harbor+k8s 部署项目
docker·gitee·jenkins