该方法是使用docker commit 命令,其命令格式为:

 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

主要参数选项包括:

  • -a ,–author=”” 作者信息
  • -m,–message=”” 提交信息
  • -p,–pause=true 提交是暂停容器运行

docker commit +参数 模板容器 构成的镜像

举例:

  1. [root@iZbp16cdvzk4rhl0vn1gedZ ~]# docker run -dit --name aa centos:latest
  2. Unable to find image 'centos:latest' locally
  3. latest: Pulling from library/centos
  4. 8ba884070f61: Pull complete
  5. Digest: sha256:8d487d68857f5bc9595793279b33d082b03713341ddec91054382641d14db861
  6. Status: Downloaded newer image for centos:latest
  7. c29d6e5a467c11ab34cd4bfd6f3484539711c361310796211db8d1b271ae51f8
  8. [root@iZbp16cdvzk4rhl0vn1gedZ ~]# docker ps -a
  9. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  10. c29d6e5a467c centos:latest "/bin/bash" 2 minutes ago Up 2 minutes aa
  11. 957f22f13326 java:latest "java -jar -Xms256m …" 23 hours ago Up About an hour 0.0.0.0:8090->8090/tcp mobile
  12. [root@iZbp16cdvzk4rhl0vn1gedZ ~]# docker commit -a "sjj" -m "这是项目一的第一个版本镜像" aa bb:v1.0
  13. 4sha256:3b8d26737bcb99aa12ef55c6e9620720b0ad85ecdee9cd52fbb5d5e1a2da2591
  14. [root@iZbp16cdvzk4rhl0vn1gedZ ~]# docker images
  15. REPOSITORY TAG IMAGE ID CREATED SIZE
  16. bb v1.0 3b8d26737bcb 12 seconds ago 202MB
  17. centos latest 9f38484d220f 3 weeks ago 202MB
  18. java latest d23bdf5b1b1b 2 years ago 643MB
  1. [root@iZbp16cdvzk4rhl0vn1gedZ ~]# docker image inspect bb:v1.
  2. [
  3. {
  4. "Id": "sha256:3b8d26737bcb99aa12ef55c6e9620720b0ad85ecdee9cd52fbb5d5e1a2da2591",
  5. "RepoTags": [
  6. "bb:v1.0"
  7. ],
  8. "RepoDigests": [],
  9. "Parent": "sha256:9f38484d220fa527b1fb19747638497179500a1bed8bf0498eb788229229e6e1",
  10. "Comment": "这是项目一的第一个版本镜像",
  11. "Created": "2019-04-09T10:30:00.512844021Z",
  12. "Container": "c29d6e5a467c11ab34cd4bfd6f3484539711c361310796211db8d1b271ae51f8",
  13. "ContainerConfig": {
  14. "Hostname": "c29d6e5a467c",
  15. "Domainname": "",
  16. "User": "",
  17. "AttachStdin": false,
  18. "AttachStdout": false,
  19. "AttachStderr": false,
  20. "Tty": true,
  21. "OpenStdin": true,
  22. "StdinOnce": false,
  23. "Env": [
  24. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  25. ],
  26. "Cmd": [
  27. "/bin/bash"
  28. ],
  29. "ArgsEscaped": true,
  30. "Image": "centos:latest",
  31. "Volumes": null,
  32. "WorkingDir": "",
  33. "Entrypoint": null,
  34. "OnBuild": null,
  35. "Labels": {
  36. "org.label-schema.build-date": "",
  37. "org.label-schema.license": "GPLv2",
  38. "org.label-schema.name": "CentOS Base Image",
  39. "org.label-schema.schema-version": "1.0",
  40. "org.label-schema.vendor": "CentOS"
  41. }
  42. },
  43. "DockerVersion": "18.09.2",
  44. "Author": "sjj",
  45. "Config": {
  46. "Hostname": "c29d6e5a467c",
  47. "Domainname": "",
  48. "User": "",
  49. "AttachStdin": false,
  50. "AttachStdout": false,
  51. "AttachStderr": false,
  52. "Tty": true,
  53. "OpenStdin": true,
  54. "StdinOnce": false,
  55. "Env": [
  56. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  57. ],
  58. "Cmd": [
  59. "/bin/bash"
  60. ],
  61. "ArgsEscaped": true,
  62. "Image": "centos:latest",
  63. "Volumes": null,
  64. "WorkingDir": "",
  65. "Entrypoint": null,
  66. "OnBuild": null,
  67. "Labels": {
  68. "org.label-schema.build-date": "",
  69. "org.label-schema.license": "GPLv2",
  70. "org.label-schema.name": "CentOS Base Image",
  71. "org.label-schema.schema-version": "1.0",
  72. "org.label-schema.vendor": "CentOS"
  73. }
  74. },
  75. "Architecture": "amd64",
  76. "Os": "linux",
  77. "Size": ,
  78. "VirtualSize": ,
  79. "GraphDriver": {
  80. "Data": {
  81. "MergedDir": "/var/lib/docker/overlay2/71f5125fb1a5fe97559dce70e96bcef490ca3b80e84f89304e9cf31970633b44/merged",
  82. "UpperDir": "/var/lib/docker/overlay2/71f5125fb1a5fe97559dce70e96bcef490ca3b80e84f89304e9cf31970633b44/diff",
  83. "WorkDir": "/var/lib/docker/overlay2/71f5125fb1a5fe97559dce70e96bcef490ca3b80e84f89304e9cf31970633b44/work"
  84. },
  85. "Name": "overlay2"
  86. },
  87. "RootFS": {
  88. "Type": "layers",
  89. "Layers": [
  90. "sha256:d69483a6face4499acb974449d1303591fcbb5cdce5420f36f8a6607bda11854"
  91. ]
  92. },
  93. "Metadata": {
  94. "LastTagTime": "2019-04-09T18:30:00.521570076+08:00"
  95. }
  96. }
  97. ]

docker 把容器commit成镜像的更多相关文章

  1. Docker将容器制作成镜像并提交到远程仓库

    Docker将容器制作成镜像并提交到远程仓库 步骤如下 先在dockerhub上创建一个自己的用户https://hub.docker.com/.或者在阿里云也可以. 2. 然后先创建一个空的镜像名. ...

  2. docker学习笔记之把容器commit成镜像

    docker提供了两种镜像制作的方式,提高了使用的灵活性: 1.可以将更改后的容器提交,制作成镜像(这是接下来要说明的) 2.通过Dockerfile来制作镜像 下面通过一个例子来展示方法1. 本地有 ...

  3. Docker容器打包成镜像 - OpenDaylight官方 SDN Hub Tutorial VM 的docker镜像

    由于工作需要,在看OpenDaylight (一个SDN的开源控制器) 官方Tutorial有一个比较基础且介绍比较详细的文档(http://sdnhub.org/tutorials/opendayl ...

  4. Docker:Docker打包Web API成镜像并上传到Docker Hub(2)

    Docker官方镜像:https://hub.docker.com/: 本文将把一个webapi制作成docker镜像 一.Docker命令 打开Docker Quickstart,有以下常用的命令 ...

  5. docker删除容器再删除镜像

    1. 查询镜像 docker images 现在想删除第一个,ID为 99f85991949f 的镜像. docker rmi  ID 从上面看出,需要先停到ID为 67*** 的容器. 2. 查询容 ...

  6. docker 将正在运行的容器打包为镜像

    将容器打包成镜像 docker commit -a "runoob.com" -m "my apache" 容器名称或id 打包的镜像名称:标签 OPTIONS ...

  7. .NETCore Docker实现容器化与私有镜像仓库管理

    一.Docker介绍 Docker是用Go语言编写基于Linux操作系统的一些特性开发的,其提供了操作系统级别的抽象,是一种容器管理技术,它隔离了应用程序对基础架构(操作系统等)的依赖.相较于虚拟机而 ...

  8. Docker保存修改后的镜像

    1.启动镜像并做出修改 docker run -it centos /bin/bash [root@afcaf46e8305 /]# 注意afcaf46e8305是产生的容器ID,前面运行的时候不要- ...

  9. WSL docker打通容器间通信和追加端口映射

    最近在docker中搭建一个服务,需要有多个容器通信.这里简单记录一下如何在容器间进行通信,同时说一下已经存在的容器如何追加端口映射. 增加网桥 容器间通信的目的是不适用IP而是使用容器名称进行网络通 ...

随机推荐

  1. js失效的原因及解决方式

    1.在head中先引用了js文件再引用jquery,应先引用jquery 2.js文件中所有代码应包含在$(function(){ });中

  2. 转:开启命令行下的社交-webqq脚本

    最近一直在命令行下工作,除了 Google Chrome,几乎很少接触 GUI 相关的软件.前段时间把手机上的 QQ 给卸载了,希望可以把时间凝聚在更加有价值的位置,今天突然又想起了这个软件,突发奇想 ...

  3. 样条曲线catmull rom转bezier

    b0,..,b3是贝塞尔,c-1, c2是catmull rom控制点 [b0] = 1 [ 0 6 0 0] [c_1] [b1] - [-1 6 1 0] [c0] [b2] 6 [ 0 1 6 ...

  4. 编写高质量代码改善C#程序的157个建议——建议78:应避免线程数量过多

    建议78:应避免线程数量过多 在多数情况下,创建过多的线程意味着应用程序的架构设计可能存在着缺陷.经常有人会问,一个应用程序中到底含有多少线程才是合理的.现在我们找一台PC机,打开Windows的任务 ...

  5. 【转】java中定义二维数组的几种写法

    原文链接 注:以下的 type[][] var 也可以这样申明 type var[][] type为数组的类型,var为变量名 写法一:行列固定的数组 //定义二维数组写法1 class Test { ...

  6. thinkjs用户请求处理

  7. <a>标签的用法以及[@text_cut]

    <a href="${a.url}" target="_blank">[@text_cut s=a.title len=titLen append= ...

  8. redis整理の走进redis世界

    声明:原文摘自http://weibo.com/u/2446082491,谢谢他的分享! 在当前大型互联网应用以及提供云计算服务的时候,怎样保证系统在海量数据环境下的高性 能.高可靠性.高扩展性.高可 ...

  9. Linq限定操作之All,Any,Contains源码分析

    Linq限定操作之All,Any,Contains源码分析 linq的限定操作 常见的限定操作: All,Any,Contains 一:All 1. 解释: 确定序列中的所有元素是否满足条件. 从字面 ...

  10. C#基础入门 一

    C#基础入门 一 基本输入输出函数 简单程序输出helloworld using System;//引入System库 namespace MainClass { class MainClass { ...