docker是linux容器的一种封装,提供简单易用的容器使用接口,是最流行的linux容器解决方案。docker的接口至关简单,用户能够方便地建立和销毁容器。docker将应用程序与程序的依赖,打包在一个文件里面,运行这个文件就会生成一个虚拟容器。程序运行在虚拟容器里面,如同在真实物理机上运行同样,能够解决环境配置的难题。python
linux容器不是模拟一个完整的操做系统,而是对进程进行隔离,在正常的进程外面套一个保护层,对于容器里面的进程来讲,它接触到的资源都是虚拟的,从而实现和底层系统的隔离。linux
容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。因此,启动容器至关于启动本机的一个进程,而不是启动一个操做系统,速度快不少。docker
容器只占用须要的资源,不占用那些没有用的资源;而虚拟机是完整的操做系统,不可避免要占用全部资源。此外,多个容器能够共享资源,虚拟机都是独享资源。json
容器只要包含用到的组件便可,而虚拟机是整个操做系统的打包,因此容器文件比虚拟机文件小不少。安全
综上所说,容器能够理解为轻量级的虚拟机,可以提供虚拟化的环境,成本开销小得多。bash
容器 不须要进行硬件虚拟以及运行完整的操做系统等额外开销,因此不管是应用执行速度、内存损耗或者文件存储速度,都比传统虚拟技术更高效。架构
传统的虚拟机技术启动应用服务每每须要数分钟,而docker容器应用直接运行于宿主机内核,不须要启动完整的操做系统,能够作到秒级、甚至毫秒级的启动时间,大大节约了开发、测试和部署的时间。运维
开发过程当中一个常见的问题是环境一致性问题。docker镜像提供了除内核外完整的运行环境,确保了应用运行环境的一致性。curl
使用docker能够经过定制应用镜像来实现持续继承、持续交付、部署。开发人员能够经过dockerfile来进行镜像构建,并结合、持续继承系统进行继承测试;而运维人员能够直接在生产环境中快速部署该镜像,甚至结合持续部署系统进行自动部署。测试
docker确保了执行环境的一致性,故应用的迁移更加容易。不管是在物理机、虚拟机、公有云、私有云,甚至是笔记本,运行结果都是一致的。所以,用户能够很轻易的在一个平台上运行应用,迁移到另外一个平台上,不用担忧运行环境的变化致使应用没法正常运行。
docker的整个生命周期就是这三个概念。
下载docker
yum install docker -y
配置docker镜像加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
加速器修改的是 /etc/docker/daemon.json
文件。
重启docker服务
systemctl restart docker
注意:重启以前须要修改一个配置文件。
cat /etc/docker/daemon.json # 去掉{}里面的逗号就行 {"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}