Docker总结(1)

1.Docker是什么?

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

  Docler的核心思想是隔离!打包装箱,每个箱子互相隔离。

  仓库地址:Https://hub.docker.com

  官网:https://www.docker.com

2.虚拟机技术的缺点

  1.资源的占用十分多

  2.步骤繁琐

  3.启动缓慢

3.Docker和虚拟机技术的不同

 ——传统的虚拟机,虚拟出一条硬件运行一个完整的操作系统,然后在这个系统上安装软件

 ——Docker:容器内应用直接运行在窗口主机的内容,容器是没有自己的内核的。也没有虚拟我们的软件,所以就轻便了。

   每个容器是相互隔离的,每个容器都有一个属于自己的文件系统,互不影响

4.Docker优势

   更简单的系统运维

   更高效的计算机资源利用

   应用更快速的交付和部署

   更便捷的升级和扩展容器

5.镜像,容器,仓库

  镜像:docker镜像就好比是一个模板,可以通过这个模板来创建容器服务。

     通过这个镜像可以创建多个容器。

  容器:Pocker利用容器技术。独立运行一个或者一个组应用,通过镜像来创建启动。停止,删除,基本指令、

  仓库:用来存放镜像的地方。

6.Docker模板(待完善)

  主要的模块有: Docker Client、Docker Daemon、Docker Registry、Graph、Driver、libcontainer以及Docker container 。

  1.docker-client:docker client 是docker架构中用户用来和docker daemon建立通信的客户端,用户使用的可执行文件为docker,通过docker命令行工具可以发起众多管理container的请求。
 docker client可以通过一下三宗方式和docker daemon建立通信:tcp://host:port;unix:path_to_socket;fd://socketfd。,docker client可以通过设置命令行flag参数的形式设置安全传输层协议(TLS)的有关参数,保证传输的安全性
 docker client发送容器管理请求后,由docker daemon接受并处理请求,当docker client 接收到返回的请求相应并简单处理后,docker client 一次完整的生命周期就结束了,当需要继续发送容器管理请求时,用户必须再次通过docker可以执行文件创建docker client。

  2.docker-server:docker server在docker架构中时专门服务于docker client的server,该server的功能时:接受并调度分发docker client发送的请求,架构图如下:

  

 

 7.Docker为什么比VM快?

  1.Docker有着比虚拟机更少的抽象类

  2.Docker利用的是宿主机的内核,VM需要的是Guest OS

 所以说新建的一个容器的时候,docker不需要向虚拟机一样重新加载系统内核,避免引导。虚拟机加载Guest OS,而docker是利用宿主机的操作系统。

 

8.Docker镜像加载原理:

  镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行摸个软件所需要的所有内容。

  docker的镜像实际是上由一层一层的文件系统组成。

  bootfs主要包含bootloader和kernel,bootloader主要是引导加载kernel,Linux则启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs

  rootfs在bootfs上,包含的就是典型Linux系统中的/dev,/proc./bin./etc等标准目录和文件。

 

9.联合文件系统(UnionFS)

  联合文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。
联合文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

 

10.提交容器

  docker commit 提交容器成为一个新的副本

       -m="提交的信息"

       -a="作者"容器  id     目标镜像名:[tag]

  1.启动一个默认的tomcat      docker run -it -p 8080:8080 tomcat

  

 

   2.出现默认的tomcat是没有webapps的应用  docker exec -it 容器id /bin/bash

  

 

 

 

   3.自己拷贝文件  cp -r webapps.dist/* webapps

  

 

 

   

 

   4.将操作的容器通过commit 提交为一个镜像  docker commit -a="作者名" -m="提交的代号"  容器id  comcat :版本号

  

 

   

 

 

 

 

借鉴狂神说:www.kuangstudy.com 

 

 

   

posted @ 2021-04-07 14:56  氺棣  阅读(92)  评论(0)    收藏  举报