Docker镜像

  镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

1.UnionFS(联合文件系统)

 

2.Docker镜像加载原理

 

3.分层的镜像

 

4.为什么使用分层结构

  最大的一个好处就是 - 共享资源

  比如:有多个镜像都从相同的 base 镜像构建而来,那么宿主机只需在磁盘上保存一份base镜像,同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。

5.Docker镜像特点

Docker镜像都是只读的当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。

6.docker commit

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

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

[1].运行tomcat

  Hub上下载tomcat镜像到本地并成功运行.因为我下载的是centos6.8,所以为了兼容性我下载tomcat7.0

 

[root@pluto ~]# docker pull tomcat:7.0.70-jre7

[root@pluto ~]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

nginx               latest              9fcafc113f95        3 days ago          132.6 MB

centos              latest              375e2d4d2a24        7 days ago          215.1 MB

hello-world         latest              fd74c3615f76        7 months ago        13.34 kB

centos              6.8                 efa3cf7ee1f9        17 months ago       194.5 MB

tomcat              7.0.70-jre7         dca86ad0bb53        3 years ago         357.8 MB

[root@pluto ~]# docker run -it -p 8888:8080 dca86ad0bb53

[root@pluto ~]# docker run -it -P dca86ad0bb53

 

 

[2].删除tomcat文档

  故意删除上一步镜像生产tomcat容器的文档

[root@pluto apache-tomcat-7.0.70]# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES

f03c4ec4827d        dca86ad0bb53        "catalina.sh run"   5 minutes ago       Up 5 minutes        0.0.0.0:32768->8080/tcp   grave_torvalds      

17c2ee9ceeb5        centos:6.8          "/bin/bash"         44 minutes ago      Up 44 minutes                                 high_banach         

[root@pluto apache-tomcat-7.0.70]# docker exec -it f03c4ec4827d /bin/bash

 

root@f03c4ec4827d:/usr/local/tomcat/webapps# pwd

/usr/local/tomcat/webapps

root@f03c4ec4827d:/usr/local/tomcat/webapps# rm -rf docs

 

[3].创建新镜像

  即当前的tomcat运行实例是一个没有文档内容的容器,以它为模板commit一个没有doc的tomcat新镜像atguigu/tomcat02

[root@pluto ~]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

tomcat              7.0.70-jre7         dca86ad0bb53        3 years ago         357.8 MB

 

[root@pluto ~]# docker commit -a "pluto" -m="tomcat remove docs" f03c4ec4827d pluto/tomcat:7.0.70-pluto

f77d4ea48ed4da175e94b18b2e7b6f92bf9dc5afbd3b528ffd5d8858f032202f

 

[root@pluto ~]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

pluto/tomcat        7.0.70-pluto        f77d4ea48ed4        9 seconds ago       357.9 MB

tomcat              7.0.70-jre7         dca86ad0bb53        3 years ago         357.8 MB

 

 

[root@pluto ~]# docker run -it -p 8888:8080  pluto/tomcat:7.0.70-pluto

 

[4].对比

 

 

 

相关文章

文章浏览阅读8.8k次,点赞2次,收藏7次。本文介绍Docker Com...
文章浏览阅读1.5w次,点赞7次,收藏76次。原网提供的教程需要...
文章浏览阅读940次,点赞20次,收藏20次。通过 docker run 命...
文章浏览阅读1k次,点赞20次,收藏20次。Podman 是一个开源的...
文章浏览阅读2.1k次。请注意,这些命令需要在 Docker 主机上...
文章浏览阅读1.1k次,点赞37次,收藏40次。nacos搭建集群连接...