Docker详解(入门必看)

网友投稿 258 2022-10-18

Docker详解(入门必看)

文章目录

​​一、Docker概述​​

​​`讲个故事`​​​​`容器技术的核心`​​​​`什么是Docker`​​​​`Docker和传统虚拟化方式对比`​​​​`docker体系结构`​​​​`Docker特性`​​

​​优点​​​​缺点​​

​​` 应用场景`​​

​​二、基本概念​​

​​`镜像(image)`​​​​`容器(container)`​​​​`镜像仓库(repository)`​​

​​三、安装Docker​​​​四、Docker Run流程​​​​五、Docker镜像原理​​

​​`UnionFS`​​​​`Docker镜像加载原理`​​​​`分层原理`​​

​​六、容器数据卷​​​​七、Dockerfile制作镜像​​​​八、Docker网络​​

参考文章、视频:​​​Docker官方文档​​​​Docker中文文档​​​​狂神说Docker​​​​终于有人Docker讲清楚了,网工别再说你不懂了!​​

一、Docker概述

Docker 作为目前最流行的开源容器引擎,具有开箱即用、快速部署、资源隔离、可移植性强等特性,可以在短时间上手使用,实现容器化部署应用。

​​讲个故事​​

我需要盖一个房子,于是我搬石头、砍木头、画图纸、盖房子。一顿操作,终于把这个房子盖好了。

结果,住了一段时间,心血来潮想搬到海边去。这时候按以往的办法,我只能去海边,再次搬石头、砍木头、画图纸、盖房子。

烦恼之际,跑来一个魔法师教会我一种魔法。这种魔法可以把我盖好的房子复制一份,做成「镜像」,放在我的背包里。

等我到了海边,就用这个「镜像」,复制一套房子,拎包入住。

是不是很神奇?对应到我们的项目中来,房子就是项目本身,镜像就是项目的复制,背包就是镜像仓库。

如果要动态扩容,从仓库中取出项目镜像,随便复制就可以了。Build once,Run anywhere!

​​容器技术的核心​​

Cgroups(Control Groups)-资源管理[限制使用的资源]NameSpace-进程隔离(命名空间)SELinux安全

​​什么是Docker​​

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。2014年4月9日,Docker1.0发布基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。Docker是完整的一套容器管理系统Docker提供了一组命令,让用户更加方便直接地使用容器技术,而不需要过多关心底层内核技术是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的cgroup、namespace、Union FS等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称为容器早期版本基于LXC,从0.7以后开始去LXC,转为自行研发的libcontainer,从1.11版本开始,进一步演进为使用runC和containerd

​​Docker和传统虚拟化方式对比​​

​​docker体系结构​​

​​Docker特性​​

优点

相比于传统的虚拟化技术,容器更加简洁高效开箱即用、快速部署、可移植性强、环境隔离容器使用共享公共库和程序随处运行:容器可以将代码与配置文件和相关依赖库进行打包,从而确保在任何环境下的运行都是一致的。高资源利用率:容器提供进程级的隔离,因此可以更加精细地设置 CPU 和内存的使用率,进而更好地利用服务器的计算资源。快速扩展:每个容器都可作为单独的进程予以运行,并且可以共享底层操作系统的系统资源,这样一来可以加快容器的启动和停止效率。

缺点

• 容器的隔离性没有虚拟化强(linux下的容器不能虚拟出windows操作系统) • 共用Linux内核,安全性有先天缺陷 • SELinux难以驾驭

​​应用场景​​

节省项目环境部署时间环境一致性持续集成微服务弹性伸缩

二、基本概念

​​镜像(image)​​

镜像好比一个模板,通过镜像来创建容器。一个镜像可以创建N个容器镜像是不可变的,不能修改里面的内容镜像可分为:基础镜像(OS)、环境镜像(jdk)、应用镜像(tomcat)、业务镜像(jar包)

​​容器(container)​​

镜像run起来之后就称之为容器每个容器都是Linux的一个进程,也可以把容器看成是一个独立的Linux系统容器是可变的,可以在容器里面进行各种Linux操作(touch、mkdir、rm)

​​镜像仓库(repository)​​

存放镜像的地方分为公有仓库和私有仓库官方的仓库为Docker Hub,私有仓库可以通过registry和harbor来搭建

三、安装Docker

Shell脚本安装Docker(二进制版)

SUSE12安装docker19.03.13

四、Docker Run流程

五、Docker镜像原理

​​UnionFS​​

联合文件系统(Union File System):它可以把多个目录(也叫分支)内容联合挂载到同一个目录下,而目录的物理位置是分开的。 镜像可以通过分层来继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像

​​Docker镜像加载原理​​

bootfs(boot file system)主要包含bootloader和kernel.

Docker镜像的最底层是bootfs,与典型的Linux是一样的,包含boot加载器和内核。当boot加载完之后,整个内核就在内存中了,此时内核的使用权已由bootfs转交给内核,系统也会卸载bootfs。

顶层的可写层称为容器层,下层的原始只读镜像称为镜像层

​​分层原理​​

镜像是分层的,每一层都可以共享。

六、容器数据卷

实现数据的持久化。

七、Dockerfile制作镜像

dockerfile详解

八、Docker网络

Docker网络详解

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringCloud之Zuul网关原理及其配置讲解
下一篇:Docker中安装JDK1.8(二)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~