Docker基础

xiaoxiao2021-02-28  50

一、概述

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

转载请注明原文地址: https://www.6miu.com/read-2623413.html

最新回复(0)