Docker基础
一、概述Docker是一种容器技术,容器技术历史如下:容器技术可以完美地将应用的各种组件封装起来,一次开发,一次封装,多次部署,随时迁移。从而不需要关注底层架构。二、Docker中常用的技术1、namespace技术namespace技术是为了对容器进行网络、通信、文件、权限等对象的隔离。namespace包含了6项隔离:2、Cgroupscgroups可以对容器所占用的系统资源进行
一、概述
Docker是一种容器技术,容器技术历史如下:
容器技术可以完美地将应用的各种组件封装起来,一次开发,一次封装,多次部署,随时迁移。从而不需要关注底层架构。
二、Docker中常用的技术
1、namespace技术
namespace技术是为了对容器进行网络、通信、文件、权限等对象的隔离。namespace包含了6项隔离:
2、Cgroups
cgroups可以对容器所占用的系统资源进行限制。
3、其它技术
- selinux和apparmor可以增强对容器的访问控制。
- capabilities主要实现在于将超级用户root的权限分割成了各种不同的capabilities权限,从而更严格上的控制容器的权限。
- netlink技术可以完成docker容器的网络环境配置和创建。
4、容器管理
lxc是第一个完整意义上的容器管理技术,通过lxc可以方便地启动、创建、停止一个容器,还可以通过它来操作容器中的应用,也可以查看容器的运行状态等等。
libcontainer是docker开发的原生的lxc。
5、Docker技术原理
docker三个重要组件:
execdirver:存储了容器定义的配置信息,libcontainer拿到这些信息后调用底层的namespace等技术来完成容器的创建和管理。
networkdirver:完成docker容器的网络环境的配置,如IP地址、端口、防火墙策略等。
graphdirver:主要负责对容器镜像的管理。
三、Docker核心技术
1、虚拟机和Docker对比
如图所示:
容器的运行是不需要额外安装操作系统的,容器是更加轻量化的技术。
接下来看看详细的对比信息:
2、容器、镜像、仓库
容器是承载相关应用的载体;镜像可以由安装了特定应用的容器打包而来,这样可以方便地进行二次下载与运行;仓库是存储镜像的地方。
docker容器由三种状态:
- Running Stopped Paused
docker镜像是一种层级状的结构,如下图所示:
由此可见,有两种创建镜像的方式。
Docker仓库
dockerhub是docker的官方镜像仓库,存放了各种标准的镜像,我们可以使用pull命令下载镜像。还可以定制私有仓库。
3、build、ship、run
build onece,run everywhere.
4、docker数据卷
当我们的容器崩溃后重启时,依然可以访问到之前的数据,也可以方便解决主机和容器间的数据访问。
5、docker网络
docker网络有四种模式:bridged、host、container、none。
- bridged:表示容器可以与主机、主机上的容器、外部通信。
- host:只能与主机通信
- container:只能与主机上的容器通信
- none:无网络
最常用的是bridge模式。
四、Docker平台架构
Docker平台架构:
Docker平台技术体系(常用工具):
五、Docker平台对比
1、Mesos+Marathon+Zookeeper
2、Kubernetes
3、Swarm
更多推荐
所有评论(0)