镜像是一种轻量级,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需要的所有内容,包括代码,运行时,库,环境变量和配置文件,
所有应用,直接打包,docker ,就可以直接部署
从远程仓库下载,
他人拷贝,
自己制作一个镜像dockerfile
docker镜像加载原理。
UnionFS联合文件系统,
它是一种分层,轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到,同一个虚拟文件系统下,union 文件系统是Docker镜像的基础,镜像可以通过分层来进行继承,基于基础镜像(没有父镜像)可以制作各种具体的应用镜像,
bootfis (boot file system)系统启动需要加载。bootloader和kernel .bootloader主要是引导加载kernel linux刚启动会加载bootfs 文件系统,在Docker 镜像最底层就是bootfs 这一层是与典型的linux和unix系统是一样的,包含boot 加载器和内核。加载完成后内核存在于内存中,此时内存的使用权由bootfs交给内核了,系统已卸载bootfs
黑屏---开机,过程就是加载
rootfs 文件系统,典型的linux /dev/porc/root/home rootfs就是各各不同的操作系统发行版,比如ubuntu centos 等等,
docker commit 提交容器成为一个新的副本
命令gitl
docker commit -m="提交的描述信息" -a= "作者" 容器id 目标镜像名:[tag]
[root@localhost ~]# docker run -it -p 8080:8080 tomcat 启动tomact
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/openjdk-11
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
03-Jan-2022 07:50:41.914 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.0.14
03-Jan-2022 07:50:41.952 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Dec 2 2021 22:01:36 UTC
03-Jan-2022 07:50:41.953 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.0.14.0
03-Jan-2022 07:50:41.953 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
03-Jan-2022 07:50:41.954 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 3.10.0-1160.el7.x86_64
03-Jan-2022 07:50:41.965 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
03-Jan-2022 07:50:41.965 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/local/openjdk-11
[root@localhost ~]# docker ps 查看
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26401315fa03 tomcat "catalina.sh run" 50 seconds ago Up 41 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp hopeful_lewin
30662e30fb0a portainer/portainer "/portainer" 45 minutes ago Up 44 minutes 0.0.0.0:8088->9000/tcp, :::8088->9000/tcp suspicious_tharp
[root@localhost ~]# docker stop 30662e30fb0a 只留下tomcat
30662e30fb0a
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26401315fa03 tomcat "catalina.sh run" About a minute ago Up About a minute 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp hopeful_lewin
[root@localhost ~]# docker exec -it 26401315fa03 /bin/bash #进入tomcat
root@26401315fa03:/usr/local/tomcat#
root@26401315fa03:/usr/local/tomcat# ls webapps发现默认的tomcat meiy webapps 应用,镜像原因
root@26401315fa03:/usr/local/tomcat# cd webapps
root@26401315fa03:/usr/local/tomcat/webapps# ls
root@26401315fa03:/usr/local/tomcat/webapps# cd ..
root@26401315fa03:/usr/local/tomcat# cp -r webapps.dist/* webapps 拷贝进去基本文件
root@26401315fa03:/usr/local/tomcat# cd webapps
root@26401315fa03:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager
#以后就使用下面的镜像,修改过后的镜像更方便。
[root@localhost ~]# docker commit -a="lingluan" -m="add webapps app" 26401315fa03 tomcat0001:1.0
加冒号是说明版本信息
sha256:a22c9a74a6f86bef6275494e51be9fd80171cca2100497e1c52a3daba8fadf0a
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat0001 latest a22c9a74a6f8 6 seconds ago 684MB
tomcat latest 13b1026f5ad2 2 minutes ago 684MB
nginx latest 605c77e624dd 4 days ago 141MB
tomcat 9.0 b8e65a4d736d 11 days ago 680MB
tomcat <none> fb5657adc892 11 days ago 680MB
redis latest 7614ae9453d1 12 days ago 113MB
centos latest 5d0da3dc9764 3 months ago 231MB
portainer/portainer latest 580c0e4e98b0 9 months ago 79.1MB
elasticsearch 7.6.2 f29a1ee41030 21 months ago 791MB