docker commit 命令的应用

简介: docker commit 命令的应用

前言:我记得上一篇有说到过,Docker镜像层都是只读的,容器层是可写的。当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称为”容器层“,“容器层”之下的都叫“镜像层”。如下图:


7e37e41801ec45ffa602ec8287d4c069.png


镜像分层最大的好处就是共享资源,方便复制迁移,就是为了复用。


比如说有多个镜像都从相同的base镜像构建而来,那么docker host只需要在磁盘上保存一份base镜像。同时内存中也只需要加载一份base镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。


问题引出:假设我们有一个Ubuntu的docker镜像,我们通过docker run -it ubuntu /bin/bash 命令运行这个镜像,创建这个镜像的容器。但是,当我们在ubuntu容器里面运行Linux命令时,比如运行vim a.txt时,会显示bash vim: command not found,它说找不到vim这个命令。这是因为docker镜像把ubuntu中那些不重要的、非内核必须的东西都去掉了,只保留了最最基本的一个内核等一些重要内容,所以显示找不到命令。假设我想要得到一个带有vim等命令的Ubuntu镜像呢?docker commit命令就可以帮我们提交容器副本使之成为一个新的镜像。


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


语法


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


需求

生成一个带有vim命令的Ubuntu镜像。


具体操作


1.拉去镜像


docker search ubuntu


docker pull ubuntu


3.进入容器中


docker run --name ubuntu -it ubuntu


4.在容器内安装vim命令


apt-get update


apt-get -y install vim


5.运行命令测试一下


vim a.txt


然后随便写一点


cat a.txt


到这一步,我们的容器就能运行vim命令了

7.退出容器


exit


6.docker commit生成新镜像

查看容器ID


docker ps -a


生成新镜像


docker commit -m="a vim ubuntu" -a="haiexijun" 12a4d1b772cd myubuntu:1.0.0


这时候我们再运行docker images,会发现生成的Ubuntu镜像比原本的大了100多MB。


f31e088a171a45af977a9b1121b71b15.png


7.运行我们新生成的mybuntu测试一下


docker run --name myubuntu -it myubuntu /bin/bash


vim a.txt


相关文章
|
2月前
|
安全 Docker 容器
|
2月前
|
网络安全 数据安全/隐私保护 Docker
|
18天前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
89 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
3天前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
21 3
|
2月前
|
存储 监控 安全
|
18天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
18天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
20天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
26天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
56 1
|
12天前
|
运维 Kubernetes 持续交付
深入理解Docker容器化技术及其在生产环境中的应用
深入理解Docker容器化技术及其在生产环境中的应用
29 0