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
浙公网安备 33010602011771号