-Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器 上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
-Docker是一种轻量级的“虚拟机”,是一个开源的应用容器引擎。容器是完全使用沙箱机制,相互之间不会有任何接口
1、更高效的利用系统资源
由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,可以运行更多数量的应用。
2、更快速的启动时间
直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、的启动时间。
3、一致的运行环境
由于开发环境、测试环境、生产环境不一致,导致有些bug并未在开发过程中被发现。而Docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现上述问题。
4、持续交付和部署
使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过Dockerfile来进行镜像构建,并结合持续集成(Continuous Integration)系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合持续部署(Continuous Delivery/Deployment)系统进行自动部署。
而且使用Dockerfile使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的在生产环境中部署该镜像。
5、更轻松的迁移
由于Docker确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。 因此用户可以很轻易的将在一个平台 上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
6、更轻松的维护和扩展
Docker使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。 此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的官方镜像,既可以直接在生产环境使用,又可以作为基础进一步定制, 大大的降低了应用服务的镜像制作成本。
docker把容器化技术做成了标准化平台(docker统一/指定了容器化技术的标准化平台)
使用docker有什么意义
对比参数 | 虚拟机 | 容器 |
---|---|---|
启动时间 | 慢 (分钟级别) | 快速(毫秒级别) |
占用空间 | 大(整个系统的大小,几G) | 小(内核大小,几M) |
系统隔离 | 逻辑隔离 | 依赖于内核(内核共享) |
安全性 (因为隔离性) | 高 | 低(使用原系统内核) |
Docker使用一种称为namespaces提供容器的隔离工作区的技术。运行容器时,Docker会为该容器创建一组名称空间。这些名称空间提供了一层隔离。容器的每个方面都在单独的名称空间中运行,并且其访问仅限于该名称空间。
Docker Engine在Linux上使用以下名称空间:
容器完美的实现了6个名称空间隔离(namespace资源隔离-用容器化技术封装)
Linux上的Docker引擎还依赖于另一种称为控制组
(cgroups)的技术。cgroup将应用程序限制为一组特定的资源。控制组允许Docker
Engine将可用的硬件资源共享给容器,并有选择地实施限制和约束。例如,您可以限制特定容器可用的内存。
方法一:
使用CURL获得Docker的安装脚本(get-docker.sh)进行安装
方法二:
使用yum仓库安装
我们使用第二种方法安装
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
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://account.aliyun.com/
获取方式:登录阿里云–>控制台–>在上面搜索容器镜像服务–>左下角的镜像加速器
在此页面中显示阿里云的镜像加速地址和配置方法
systemctl daemon-reload
systemctl restart docker
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
service network restart
systemctl restart docker