详解Docker学习之用commit命令创建镜像

发布时间 - 2026-01-11 00:06:06    点击率:

构建镜像的两种方法:

  • 使用docker commit 命令
  • 使用docker build命令和Dockerfile文件

Dockerfile更抢到、灵活,推荐使用。

一般来说不是真的“创建”新镜像,而是基于一个已有的基础镜像,比如Ubuntu、Fedora等,构建新的镜像而已。

用commit创建镜像

创建Docker账号

共享和发布镜像时构建镜像中重要的环节,可以将镜像推送到Docker Hub或资金的私有Registry中。首先到https://hub.docker.com/account/signup/ 创建账号。

 

邮件激活后,可以测试登录:

$ sudo docker login

这条命令会完成登录,并将认证信息报错起来供后面使用。个人认证信息将报错到$HOME/ .dockercfg文件中.

用 commit 命令创建镜像

可以想象是往版本控制系统里提交变更:首先创建一个容器,并在容器里做修改,就行修改代码一样,最后在讲修改提交为一个新镜像。

创建一个新容器命令:

$ sudo docker run -i -t ubuntu /bin/bash

我用之前创建好的aoct容器:

$ sudo docker start aoct
$ sudo docker attach aoct

安装Apache:

root@614122c0aabb:/# apt-get -yqq update
...
root@614122c0aabb:/# apt-get -y install apache2
...

想把这个容器作为一个Web服务器来运行,所以要把它当前状态保存下来,就不必每次都创建一个新容器并再次安装Apache。

所以先用exit命令退出容器,再运行docker commit命令:

$ sudo docker commit 614122c0aabb aoct/apache2

命令中,指定了要提交的修改过的容器的ID、目标镜像仓库、镜像名。commit提交的知识创建容器的镜像与容器的当前状态之间的差异部分,很轻量。

查看新创建的镜像:

$ sudo docker images aoct/apache2

也可以像git一样,在提交镜像时指定更多信息来描述所做的修改:

复制代码 代码如下:
$ sudo docker commit -m='A new image' --author='Aomine' 614122c0aabb aoct/apache2

上面代码,用-m指定行创建的镜像的提交信息。--author指定镜像作者,接着是容器ID、目标镜像仓库、镜像名。

使用docker inspect命令查看新创建的镜像的详细信息:

$ sudo docker inspect aoct/apache2

使用docker run命令从刚创建的新镜像运行一个容器:

$ sudo docker run -t -i aoct/apache2 /bin/bash

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# docker  # commit  # 镜像  # docker创建镜像  # commit命令  # 详解Docker镜像提交命令commit的工作原理和使用方法  # docker commit命令的具体使用  # Docker从零开始学习之Commit提交命令  # 创建一个  # 报错  # 两种  # 推荐使用  # 并在  # 要把  # 就行  # 我用  # 这条  # 并将  # 作为一个  # 更多信息  # 所做  # 想把  # 每次都  # 先用  # 控制系统  # 大家多多  # 抢到 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速选择适合个人网站的云服务器配置?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  Laravel如何使用Livewire构建动态组件?(入门代码)  微信小程序 require机制详解及实例代码  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  西安专业网站制作公司有哪些,陕西省建行官方网站?  新三国志曹操传主线渭水交兵攻略  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Laravel如何使用Vite进行前端资源打包?(配置示例)  C语言设计一个闪闪的圣诞树  EditPlus中的正则表达式 实战(1)  Java解压缩zip - 解压缩多个文件或文件夹实例  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  node.js报错:Cannot find module 'ejs'的解决办法  javascript基于原型链的继承及call和apply函数用法分析  高端智能建站公司优选:品牌定制与SEO优化一站式服务  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  python中快速进行多个字符替换的方法小结  Android滚轮选择时间控件使用详解  如何在万网主机上快速搭建网站?  北京网站制作的公司有哪些,北京白云观官方网站?  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  JS中对数组元素进行增删改移的方法总结  如何快速上传建站程序避免常见错误?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  javascript中对象的定义、使用以及对象和原型链操作小结  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何快速启动建站代理加盟业务?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  如何用5美元大硬盘VPS安全高效搭建个人网站?  高防服务器如何保障网站安全无虞?  如何在橙子建站中快速调整背景颜色?  Laravel如何实现多对多模型关联?(Eloquent教程)  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  WEB开发之注册页面验证码倒计时代码的实现  javascript读取文本节点方法小结  如何快速生成可下载的建站源码工具?  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel如何使用Service Container和依赖注入?(代码示例)  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  Laravel如何实现用户密码重置功能?(完整流程代码)  Laravel如何处理和验证JSON类型的数据库字段  HTML 中动态设置元素 name 属性的正确语法详解