Docker-commit

简介: 之前理解了镜像是分层构成后,并且我们修改了我们的nginx的index页面,如果想把这个nginx镜像保存下来供其他人使用,那么我们就需要进行“保护现场”,这也是commit命令的作用我们先来看一下我的机子上有那些容器[qidai@qidai-pc ~]$ docker ps -aCONT...
  1. 之前理解了镜像是分层构成后,并且我们修改了我们的nginx的index页面,如果想把这个nginx镜像保存下来供其他人使用,那么我们就需要进行“保护现场”,这也是commit命令的作用
  2. 我们先来看一下我的机子上有那些容器

    [qidai@qidai-pc ~]$ docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS               NAMES
    b5c597a4f124        nginx               "nginx -g 'daemon of…"   26 hours ago        Exited (0) 23 hours ago                       webnginx
    76110444b847        91dadee7afee        "docker-entrypoint.s…"   3 days ago          Exited (0) 2 days ago                         my-test-mysql
  3. 我们更改后webnginx后现在进行保存

    [qidai@qidai-pc ~]$ docker commit --author "qidai" --message "change webnginx index.html" webnginx nginx:v1
    sha256:ca9ac899159eefe41cf30771cc2f4e23db967d6e2f3d0725226495296b69cb76
    • --author:指定作者
    • --message:备注信息
    • 再之后是指定保存的哪个镜像,然后紧接着是保存后的名字和版本
  4. 保存后我们在来看一下本地image

    [qidai@qidai-pc ~]$ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    nginx               v1                  ca9ac899159e        3 minutes ago       109MB
    nginx               latest              881bd08c0b08        4 days ago          109MB
    ubuntu              latest              47b19964fb50        4 weeks ago         88.1MB
    centos              latest              1e1148e4cc2c        3 months ago        202MB
  5. 会多出来一个nginx:v1镜像,我们把它run起来

    [qidai@qidai-pc ~]$ docker run --rm -d -p 80:80 nginx:v1
    1c494ae39be7666f1c3249054b5657b24bebe192009761d1063e424f601bb672
    [qidai@qidai-pc ~]$ docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
    1c494ae39be7        nginx:v1            "nginx -g 'daemon of…"   9 seconds ago       Up 7 seconds        0.0.0.0:80->80/tcp   recursing_zhukovsky
  6. 这个时候再次访问 localhost就会直接出现我们修改后的index页面信息
  7. 虽然commit可以为我们定制镜像,但还是要 慎用 原因如下

    • commit后其实就是将nginx与base image打到一个包中了,那么只有你自己知道你的镜像发生了什么,而对于别人来说完全是一个黑箱
    • 之前提到的分层概念,我们nginx修改只修改了当前层,如果进行commit,别人使用你的这个镜像的时候就会在nginx层在继续添加自己的层,会使得镜像越来越臃肿
    • 我们也注意到启动nginx服务并不是只更改了index页面,而是对应的cache都会发生改变,如果在发生编译安装将会安装更多依赖库,commit后让他们成为了一体,这样也会使得镜像更加臃肿
目录
相关文章
|
Linux Docker 容器
19-Docker-常用命令详解-docker exec
19-Docker-常用命令详解-docker exec
|
4月前
|
Docker 容器
docker --cpus 详解
docker --cpus 详解
|
5月前
|
缓存 Docker 容器
在Docker中,docker commit生成的镜像和dockerfile生成镜像有什么区别?
在Docker中,docker commit生成的镜像和dockerfile生成镜像有什么区别?
|
Docker 容器
29-Docker-常用命令详解-docker history/diff
29-Docker-常用命令详解-docker history/diff
|
Docker 容器
17-Docker-常用命令详解-docker create
17-Docker-常用命令详解-docker create
|
8月前
|
Java Linux 应用服务中间件
docker镜像构建之docker commit
docker镜像构建之docker commit
188 0
|
应用服务中间件 Docker 容器
Docker从入门到精通——Commit提交一个自己的镜像
Docker从入门到精通——Commit提交一个自己的镜像
1386 3
Docker从入门到精通——Commit提交一个自己的镜像
|
Ubuntu Linux 应用服务中间件
Docker学习重点(5)~Docker镜像原理、commit提交镜像
Docker学习重点(5)~Docker镜像原理、commit提交镜像
110 0
|
jenkins 持续交付 网络安全
|
Docker 容器
Docker Review - docker images 常用命令
Docker Review - docker images 常用命令
72 0