详解Docker 修改已有镜像(commit )

先使用下载的镜像启动容器。

$ sudo docker run -t -i training/sinatra /bin/bash
root@0b2616b0e5a8:/#

注意:记住容器的 ID,稍后还会用到。

在容器中添加 json 和 gem 两个应用。

root@0b2616b0e5a8:/# gem install json

当结束后,我们使用 exit 来退出,现在我们的容器已经被我们改变了,使用 Docker commit 命令来提交更新后的副本。

$ sudo docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser/sinatra:v2
4f177bd27a9ff0f6dc2a830403925b5360bfe0b93d476f7fc3231110e7f71b1c

其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;-a 可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。

小注:

reopsitory中不能使用大写字母及下划线。

使用 docker images 来查看新创建的镜像。

$ sudo docker images
REPOSITORY     TAG   IMAGE ID    CREATED    VIRTUAL SIZE
training/sinatra  latest 5bc342fa0b91  10 hours ago 446.7 MB
ouruser/sinatra   v2   3c59e02ddd1a  10 hours ago 446.7 MB
ouruser/sinatra   latest 5db5f8471261  10 hours ago 446.7 MB

之后,可以使用新的镜像来启动容器

$ sudo docker run -t -i ouruser/sinatra:v2 /bin/bash
root@78e82f680994:/#

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

(0)

相关推荐

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

    构建镜像的两种方法: 使用docker commit 命令 使用docker build命令和Dockerfile文件 Dockerfile更抢到.灵活,推荐使用. 一般来说不是真的"创建"新镜像,而是基于一个已有的基础镜像,比如Ubuntu.Fedora等,构建新的镜像而已. 用commit创建镜像 创建Docker账号 共享和发布镜像时构建镜像中重要的环节,可以将镜像推送到Docker Hub或资金的私有Registry中.首先到https://hub.docker.com/acc

  • docker学习笔记之把容器commit成镜像的方法

    docker提供了两种镜像制作的方式,提高了使用的灵活性: 1.可以将更改后的容器提交,制作成镜像(这是接下来要说明的) 2.通过Dockerfile来制作镜像 下面通过一个例子来展示方法 本地有一个Ubuntu的镜像,下面以这个为蓝本,创建一个容器并在根目录下添加一个test文件,然后做成镜像. [root@bw001 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/ubuntu latest a3cdd83cf

  • 详解Docker 修改已有镜像(commit )

    先使用下载的镜像启动容器. $ sudo docker run -t -i training/sinatra /bin/bash root@0b2616b0e5a8:/# 注意:记住容器的 ID,稍后还会用到. 在容器中添加 json 和 gem 两个应用. root@0b2616b0e5a8:/# gem install json 当结束后,我们使用 exit 来退出,现在我们的容器已经被我们改变了,使用 Docker commit 命令来提交更新后的副本. $ sudo docker com

  • 详解Docker基于已有的镜像制新的镜像

    1.根据运行的容器制作镜像 #查看所有的容器 docker ps #暂停当前容器 docker pause COTNAINER-ID #将容器运行当前状态提交 docker commit COTNAINER-ID #根据COMMIT-ID打包容器Tag docker tag COMMIT-ID 经过以上几个步骤,根据当前运行的容器制作镜像就完成了. 2.上传镜像到Docker Hub 如果未登录Docker Hub,需要登录Docker Hub docker login #输入用户名和密码 推送

  • 详解Docker修改容器端口映射的方法

    直接解决方法 具体可参考Stack Overflow链接 docker运行时存在守护程序,所以我们需要停止docker内运行的容器和docker服务.具体可参考官网给出的守护程序解释 docker stop 容器id //CentOS下停止docker服务(Ubuntu类似) sudo systemctl stop docker 使用以下命令找到已创建容器的hostconfig.json和config.v2.json配置文件. find / -name hostconfig.json //或co

  • 详解docker pull 下来的镜像都存到了哪里

    docker pull 下来的命令都默认存在/var/lib/docker/文件夹下. 查看/var/lib/docker/image/overlay2/repositories.json文件: 正好和docker images的内容一致. 1.进入docker目录,文件结构如下: 2. 进入containers 目录,这个目录中保存是已拉取的容器ID,即一个序列号,对应一个容器. 随便进入选择一个序列号,进入后发现容器的具体结构如下: 3. 进入image 目录 这个目录中保存的是已拉取的镜像

  • 详解docker pull下来的镜像存储在哪里

    20200804补充:文章可能说法有误.大佬可查询其他答案. docker pull xxx,就可以把想要的镜像拉下来直接使用,但是pull下来的镜像存储在哪里呢?这里做下记录: 此处docker 版本为:Docker version 1.13.1 1. 进入docker目录,如下: root@iZuf6axmuekh1n14dwcufmZ:/# cd var/lib/docker/ root@iZuf6axmuekh1n14dwcufmZ:/var/lib/docker# ls aufs co

  • 详解docker下的Mysql镜像的使用方法

    通常初学者学习docker时,不太清楚怎样拉取一个Mysql镜像并使用,今天这篇文章简单介绍一下使用流程. 一.预习一下用到的docker命令: 1.docker images 列出本地主机上的镜像. 2.docker pull 从Docker Hub中拉取或者更新指定镜像. 3.docker run -d 标识是让 docker 容器在后台运行. -p 标识通知 Docker 将容器内部使用的网络端口映射到我们使用的主机上. --name 定义一个容器的名字,如果在执行docker run时没

  • 详解Docker Registry之删除镜像、垃圾回收

    Docker仓库在2.1版本中支持了删除镜像的API,但这个删除操作只会删除镜像元数据,不会删除层数据.在2.4版本中对这一问题进行了解决,增加了一个垃圾回收命令,删除未被引用的层数据.本文对这一特性进行了体验,具体步骤如下. 1.部署镜像仓库 (1)启动仓库容器 复制代码 代码如下: dockerrun -d -v /home/config.yml:/etc/docker/registry/config.yml -p 4000:5000 --nametest_registryregistry:

  • 详解docker pull 下来的镜像文件存放的位置

    1. 存放在 /var/lib/Docker 2. repositories-aufs文件: { "Repositories": { "hello-world":{"latest":"7a5a2d73abce5e0eab6aa3fa06f5d08308c79efed1e6f0392b298c322c0f955b"}, "tensorflow/tensorflow":{"latest":&

  • 详解Docker 容器基础系统镜像打包

    因为容器本身是共享宿主操作系统内核,所以容器基础系统镜像包本身就是一个标准的 Linux rootfs + 用户自定义的工具.根据这个思路,我们就可以构建一个自己的容器基础系统镜像. 构建标准的 Linux rootfs 的方式有很多种方法,Redhat.Debian.SUSE等主流的发行版都有提供相应的工具支持. 大概的流程如下: 构建基础的 rootfs -> 配置基础系统参数 -> 部署用户自定义软件 -> 清理系统 -> 打包为容器镜像 -> 测试镜像 -> 发

  • 详解Docker镜像与容器的常见操作

    镜像加速器 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器.国内很多云服务商都提供了国内加速器服务,例如: 网易云加速器 https://hub-mirror.c.163.com 阿里云加速器(需登录账号获取): https://cr.console.aliyun.com/cn-hangzhou/mirrors 国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考官方文档. 在CentOS7系统

随机推荐