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

命令如下:

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

例子:

  • 先运行一个tomcat容器。并且把容器的8080端口映射到宿主机的8787端口。
docker run -it -p 8787:8080 tomcat

通过docker ps可以看到容器已经运行,并且端口被映射到8787。如果上面的命令使用大写-P替换-p 8787:8080,会把容器的8080端口映射到宿主机的随机端口上。

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
8c71b3ab24a3        tomcat              "catalina.sh run"   3 minutes ago       Up 2 minutes        0.0.0.0:8787->8080/tcp   mystifying_elgamal

这时候访问localhost:8787可以访问到tomcat,点击“DOCUMENTATION”可以访问到tomcat的文档。

  • 改变tomcat容器内容。

进入tomcat容器,删除webapps/docs文件夹。进入容器命令如下:

docker exec -it 8c71b3ab24a3 /bin/bash

删除webapps/docs之后,再访问localhost:8787/docs就报404错误,看不到文档了。

  • 改变后的容器提交为新的image。命令如下:
docker commit -a="wk" -m="deleted tomcat docs" 8c71b3ab24a3 wk/tomcat01:1.0

上面的命令把容器8c71b3ab24a3 打包成新的镜像,镜像名是wk/tomcat01,版本TAG是1.0。使用docker images可以查看到刚刚打包的镜像。

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
wk/tomcat01         1.0                 7bce65f9e928        6 seconds ago        463MB
<none>              <none>              159d1556e7bf        34 seconds ago       463MB
<none>              <none>              c49bfd235cf4        About a minute ago   463MB
tomcat              latest              dd6ff929584a        6 days ago           463MB
centos              latest              1e1148e4cc2c        3 months ago         202MB
  • 启动刚打包的镜像wk/tomcat01。访问tomcat的文档
[root@localhost ~]# docker run -d -p 9999:8080 7bce65f9e928
31917b93c8111442d02be7a1fb12a2e2139e074b092c513b7ca1d7c1dc89413c

上面是用-d参数,以后台进程启动的。这里是一样的效果。

这个时候访问 localhost:9999/docs 也是访问不到tomcat文档的。证明打包新的image成功。因为以新的image运行的容器都没有文档。

results matching ""

    No results matching ""