Docker是容器技术的应用,而底层是由Linux容器实现的,Docker只是实现层。
一、Linux容器
1.隔离和共享
一台服务器运行多个逻辑上隔离的服务器进程,任何人的运行环境都不想影响任何人,也就是说,一台物理机需要虚拟化多个环境或容器。Linux提供了一种创建和进入容器的方法,操作系统使应用程序在独立的机器上运行,但可以共享许多底层资源。
2.实现基础
Linux容器函数基于cgroups和Namespace。
(1)cggroup(对照组)
CGGroups是管理组中进程的内核函数。通过CGGroups,进程可以被隔离,同时资源占用(cpu、内存等)。)的过程可以被隔离。物理资源在操作系统的底部受到限制,操作系统充当容器。进程的可用cpu资源由cpuset指定。
(2)名称空间
名称空间允许每个进程有独立的PID、IPC和网络空间。命名空间由克隆系统调用实现。克隆系统调用的第三个参数flags通过设置Namespace来划分资源。
Linux已经为不同场景中的隔离构建了六个不同的Namespace。
挂载-隔离文件系统挂载点UTS-隔离主机名和域名IPC-隔离进程间通信资源PID-隔离PID空间网络-隔离网络接口用户-隔离用户/用户组空间
二.Docker简介
1.这是什么?
Docker是一个开源的应用程序容器引擎,它可以轻松地为任何应用程序创建一个轻量级、可移植且自给自足的容器。开发人员在本地编译的容器可以批量部署在生产环境中。
Docker类似于一个容器。各种货物都是通过集装箱标准化来管理的,但是集装箱和集装箱以前没有影响。Docker是一个开放平台,它使开发人员和管理员能够在一个称为容器的松散隔离环境中构建映像、交互和运行分布式应用,从而在开发、QA和生产环境之间进行高效的应用生命周期管理。
2.三个重要组成部分
(1)图像
一种特殊的文件系统。操作系统分为内核和用户空间。对于Linux,内核将挂载根文件系统来提供用户控制支持。Docker镜像相当于一个根文件系统。
除了提供程序、库、资源、配置等文件外。容器运行时需要,它还包含一些为运行时准备的配置参数。镜像不包含任何动态数据,其内容在构建后不会改变。
镜像实际上是多层文件系统的组合。镜像构建的时候会一层一层的构建,前一层是后一层的基础。每层建好之后就不会再变了。下一层的任何变化只发生在当前层。例如,删除上一层文件的操作实际上并没有真正删除上一层的文件,而只是将当前层标记为文件已被删除。
分层存储的特性也使得图像的重用和定制变得更加容易。您甚至可以使用以前构建的图像作为基础层,然后进一步添加新的层来定制您需要的内容并构建新的图像。
(2)集装箱
图像和容器之间的关系就像面向对象编程中的类和实例。图像是静态定义,容器是图像运行时的实体。容器可以被创建、启动、暂停、停止、删除等。
容器的本质是一个进程,但与直接在宿主中执行的进程不同,容器进程在自己独立的命名空间中运行,容器也是分层存储的。
容器存储层的生命周期与容器的生命周期相同。当容器死亡时,容器存储层将会消亡,存储在容器存储层中的任何信息都将丢失。
容器不应将任何数据写入其存储层,容器存储层应保持无状态。所有文件写入操作都应该使用数据卷或绑定到主机目录。在这些位置读写会跳过存储层,直接读写主机,性能和稳定性更高。容器死亡后,数据卷的数据不会丢失。
容器在整个应用程序生命周期工作流中提供了以下优势:隔离性、可移植性、灵活性、可扩展性和可控性。最重要的优点是它可以在开发和操作之间提供隔离。
(3)登记处
Docker Registry是一项集中存储和分发图像的服务。
一个注册表可以包含多个存储库,每个存储库只包含一种软件,但它可以包含多个标签(即版本),每个标签对应一个镜像。
这三个组件之间的关系如下所示。比如有两个仓库,Redis和MySQL。
om/origin/pgc-image/3f07f68959004473b736e41e5895c0e7?from=pc">3、docker持续开发工作流
二、Docker安装、卸载
环境:Centos7
1、安装
Centos有配置docker社区版的yum包,所以安装比较方便。
1、先更新yum安装包 sudo yum update 2、安装docker yum install docker-ce 3、安装之后查看docker版本,也可以用docker info docker version 4、如果出现Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 启动docker service docker start 5、配置开机启动 sudo systemctl enable dockerdocker默认是docker官方的下载源,下载速度会比较慢,所以一般是配置国内的下载源,这里介绍阿里的下载源。
1、登陆阿里云获取镜像加速器地址
https://cr.console.aliyun.com/undefined/instances/mirrors
上图中就有针对各种服务器的配置详情。
2、卸载
(1)首先查看安装的Docker yum包
yum list installed | grep docker(2)依次卸载yum包
yum -y remove 包名(3)卸载掉之后,依次删除目录
rm -rf /etc/docker rm -rf /run/docker rm -rf /var/lib/dockershim rm -rf /var/lib/docker如果出现如下错误:
rm: cannot remove ‘/var/lib/docker/containers’: Device or resource busy执行如下命令:
cat /proc/mounts|grep containers umount /var/lib/docker/containers/===============================
我是Liusy,一个喜欢健身的程序员。
获取更多干货以及最新消息,请关注公众号:上古伪神
如果对您有帮助,点个关注就是对我最大的支持!!!