文章目录
什么是docker
Docker是一种轻量级的“虚拟机”,是一个开源的应用容器引擎。容器是完全使用沙箱机制,相互之间不会有任何接口
- 轻量级表示它体积小,灵活
- 而说它是虚拟机,又不是真正的虚拟机,因为它里面没有系统
- 开源表示它是免费的
如何实现应用和应用的隔离
-
应用和应用的隔离,如何进行判断
以操作系统维度
应用与应用隔离,在操作系统中,是通过namespaces实现的,只要实现以下6个空间隔离,才能认为两个应用实现了隔离 -
容器隔离了6个名称空间(namespace资源隔离-用容器化技术封装)
mount: 文件系统,挂载点——>一个文件系统内,不能重复挂载一个指定目录,例如:/mnt
user: 操作进程的用户和用户组
ipc: 信号量、消息队列,共享内存(理解,不同的应用调用内存资源的时候应该使用不同的内存空间)
net: 网络设备、网络协议栈、端口等
该pid命名空间:进程隔离(PID:进程ID) 。
该net命名空间:管理网络接口(NET:网络)。
该ipc命名空间:管理访问IPC资源(IPC:进程间通信)。
该mnt命名空间:管理文件系统挂载点(MNT:mount) 。
该uts命名空间:隔离内核和版本标识符。(UTS: Unix时间共享系统)。
Docker有哪些优势?和虚拟化比有什么优势
docker把容器化技术做成了标准化平台(docker统一/指定了容器化技术的标准化平台)
使用docker有什么意义
- docker引擎统一了基础设施环境-docker环境—》image —》封装一个简易的操作系统
- docker引擎统一了程序打包(装箱)方式-docker镜像—》images
- docker引擎统一了程序部署(运行)方式-docker 容器——》基于镜像——》运行为容器(可运行的环境)
要求:内核在3.8以上(排除了centos6)
docker 1.30版本迭代docker-ce docker-ee 1.7版本因为企业版和社区版
对比参数 | 虚拟机 | 容器 |
---|---|---|
启动时间 | 慢 (分钟级别) | 快速(毫秒级别) |
占用空间 | 大(整个系统的大小,几G) | 小(内核大小,几M) |
系统隔离 | 逻辑隔离 | 依赖于内核(内核共享) |
安全性 (因为隔离性) | 高 | 低(使用原系统内核) |
Docker的使用场景
- 应用程序(封装/构建镜像)——》运维下载,使用容器技术进行运行/发布
- 打包应用程序简单部署
- 可脱离底层硬件任意迁移(实现了应用的隔离,将应用拆分并进行解耦),例如:服务器从腾讯云迁移到阿里云
- 持续集成和持续交付(cI/CD) :开发到测试发布
- 部署微服务
- 提供PAAs产品(平台即服务){OpenStack的云主机类似于阿里云的ECS,属于IAAS、Docker (KBS)属于PAAS}
Docker引擎(Docker Engine)
Docker Engine是具有以下主要组件的客户端-服务器应用程序:
- 服务器是一种长期运行的程序,称为守护程序进程( dockerd命令)。
- REST API,它指定程序可以用来与守护程序进行通信并指示其操作的接口。
- 命令行界面(CLI)客户端(docker命令)。
Docker的核心概念
- 镜像(镜像的压缩包)
- 容器(实例,通过镜像创建)
- 仓库(存放镜像的地方)
公有仓库:Docker官方仓库
私有仓库:个人化、私有化的仓库
使用yum仓库安装Docker
安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
#yum-utils提供了yum-config-manager
#device mapper存储驱动程序需要device-mapper-persistent-data和lvm2
#Device Mapper 是Linux2.6内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker-CE
yum install -y docker-ce
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
systemctl start docker.service
systemctl enable docker.service
配置阿里云镜像加速,加速地址从自己的阿里云上获取,阿里云官网:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
获取方式:登录阿里云–>控制台–>在上面搜索容器镜像服务–>左下角的镜像加速器
网络优化
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
service network restart
systemctl restart docker
docker version