| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 【详解】Dockerfile原理、镜像容器、命令总结 -> 正文阅读 |
|
[系统运维]【详解】Dockerfile原理、镜像容器、命令总结 |
目录 重要事情说三遍:
1、Docker 中镜像和容器概念①Docker镜像
②Docker容器
③镜像和容器小结
2、Dockerfile原理详解①镜像:镜像是一种轻量级、可执行的独立软件包,用来打包软件可运行环境和基于运行环境开发的软件,它包含了某个软件运行所需的所有内容,包括代码、库、环境变量,配置文件等。 docker中的镜像,实际上是由一层一层的文件系统组成,Dockerfile中的每一行命令代表一层,为什么Docker镜像采用的是分层结构呢?因为docker镜像最大的作用是资源共享,多个镜像从相同的Base镜像构建而来,在最底层的镜像是最基础的镜像。docker中所有的镜像都起始于一个基础镜像层,当进行修改或者增加内容时,就会在当前镜像之上创建新的镜像层。如下图,基础Ubuntu镜像层,在此基础之上,创建Python镜像层,Security Patch镜像层。 ?就像集装箱一样,一层一层的叠加在一起,而彼此之间相互独立。 ?②Dockerfile原理为什么要有Dockerfile: ? ? ? ?当我们写项目工程的时候,希望自己的工程应用以容器的方式运行,这个时候我们需要把自己的项目打包成一个镜像,运行镜像(容器)。这样项目工程才会在Docker容器里面运行。?一般在公司项目交付的时候都是交付一个镜像。 Dockerfile就是构建Docker镜像的镜像文件,通过命令脚本生成镜像,镜像是一层一层的,脚本是一个个命令,每个命令都是一层。 下面是流程: ? ? ? ??构建镜像可以拉取远程的,也可以通过Dockerfile构建,运行镜像变成容器,容器打包所需的项目成功后,提交镜像。 ?下面重点讲解的是Dockerfile构建镜像的过程。
?docker build的时候,写的命令是在docker的客户端,执行命令是在docker的服务端,docker服务端接收到build指令的时候,Docker服务端会把Dockerfile所在的目录称之为上下文目录,Docker服务端找到上下文目录的时候,会把上下文中的所有目录进行一次性打包,并发送到Docker服务端。当Docker服务端接收到上下文context打包的文件的时候,根据Dockerfile指令进行构建,一行一行的进行构建。
简洁: ? ? ? ?Docker服务端先收到context(上下文:包信息指的是Dockerfile所在目录))的包信息,然后根据Dockerfile中的指令一行一行进行构建,每读取一行,都会在Docker服务端生成一层镜像。第二层基于第一层,在第一层之上生成一层镜像,最后一行指令会最终生成整个镜像的产物。 docker build 在构建镜像的时候,会把构建成功的镜像放到缓存区。 如下图所示: ?再看下图: ?③Dockerfile中指令的作用
关于Dockerfile,你学会了吗? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 17:58:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |