linux怎么查看本机内存大小
230
2022-10-18
【Docker 】第 2 章
镜像是什么分层理解commit 镜像容器数据卷
什么是容器数据卷命令具名和匿名挂载初始 Dockerfile
DockerFile
DockerFile 脚本构建构成
表示注释;
DockerFile 指令CMD 和 ENTRYPOINT 的区别
发布自己的镜像小结
可视化
portainerRancher
Docker 镜像是什么
镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行库、环境变量和配置文件。
如何得到镜像:
从远程仓库下载;文件拷贝;自己制作 DockerFile
Docker 镜像加载原理
UnionFS(联合文件系统)
UnionFS 是一种分层、轻量级且高性能的文件系统,支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一虚拟文件系统下。Union 文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。
docker 镜像实际上由一层一层的文件系统组成,这种层级的文件系统 UnionFS。
分层理解
分层下载,多个镜像共享某几个层;镜像都是只读的,当容器启动时,一个新的可写层(容器层)被加载到镜像的顶部,之下均是镜像层;inspect 参数可以查看 layers(补丁);用户的所有操作都是基于容器层的;
commit 镜像
# 命令和git原理类似docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名[:TAG]
commit 能够保存当前容器的状态,类似于虚拟机中的“快照”功能;
容器数据卷
什么是容器数据卷
目的:解决Docker镜像中数据的保留问题,在删除镜像的同时保留数据; 方法:数据共享技术——卷技术,将容器中的目录挂载到linux上面;
命令
docker run -it -v /home/ceshi:/home centos /bin/bash # -v 本机目录:容器目录,inspect 参数中的"Mounts"可以查看source和destination
即使停止容器后,在容器中修改文件内容,再次启动容器后,仍然能够查看到内容更新。
具名和匿名挂载
# 如何确定是具名挂载还是匿名挂载,还是制定路径挂载?-v 容器内路径 # 匿名挂载-v 卷名:容器内路径 # 具名挂载-v /宿主机路径:容器内路径 # 指定路径挂载# ro :readonly 只能从宿主机改变# rw :readwritedocker run -d -P --name nginx02 -v jumping-nginx:/etc/nginx:ro nginx # -P 随机端口
初始 Dockerfile
Docker 就是用来构建 docker镜像的构建脚本。
# vim dockerfile1# 文件中的内容 指令(大写) 参数# 每一步对应层级的概念FROM centosCOLUME ["VOLUME01", "VOLUME02"] # 匿名挂载,使用 docker inspect Mounts 字段查看对应宿主机目录CMD echo "-------end-------"CMD /bin/bash
docker build -f dockerfile1 -t XXX:1.0 .
docker run -it --name docker03 --volumes-from docker01 kuangshen/centos:10.
DockerFile
编写一个 dockerfile 文件;docker build 构建为一个镜像;docker run 运行镜像;docker push 发布镜像(dockerhub、阿里云镜像仓库)
DockerFile 脚本构建构成
基础知识:
每个保留关键字(指令)都必须是大写字母;执行从上到下的顺序;
表示注释;
每一个指令都会创建提交一个镜像层;
dockerfile 是面向开发的,我们以后要发布项目,做镜像,就需要编写 dockerfile 文件,这个文件十分简单!
DockerFile 指令
FROM # 基础镜像,一切从这里开始构建MAINTAINER # 镜像作者:姓名+邮箱RUN # 镜像构建的时候需要运行的命令ADD # 步骤,tomcat镜像的压缩包WORKDIR # 镜像的工作目录VOLUME # 挂载的目录EXPOST # 暴露端口配置CMD # 指定容器启动时候运行的命令,只有最后一个会生效,可被替代ENTRYPOINT # 指定容器启动时候运行的命令,可以追加命令ONBUILD # 当构建一个被继承Dockerfile这个时候就会运行ONBUILD指令,触发指令ENV # 构建的时候设置环境变量
CMD 和 ENTRYPOINT 的区别
发布自己的镜像
DockerHub
注册账号;在服务器上提交自己的镜像;
docker login -u usernamedocker push kuangshen/diytomcat:1.0
阿里云镜像 https://aliyun.com/?utm_content=se_1009145079
小结
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~