一、初识docker
1、什么是docker
docker是docker.lnc公司开源的基于LXC技术之上构建的container容器引擎,源代码托管在GitHub上,基于Go语言并遵从Apache 2.0协议开源。诞生于2013年初。
docker是通过内核虚拟化技术(namespaces及cgroup等)来提供容器的资源隔离与安全保障等。由于docker通过操作系统层的虚拟化实现隔离,所以docker容器在运行时,不需要类似虚拟机额外的操作系统开销,提高资源利用率。
docker容器技术
docker引擎的基础是Linux容器(Linux container,LXC)技术。容器有效的将由单个操作系统管理的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求。与虚拟化相比,这样既不需要指令级模拟,也不需要即时编译。容器可以在核心CPU本地运行指令,而不需要任何专门的解释机制。
从Linux容器到docker
在LXC基础上,docker进一步优化了容器的使用体验。docker提供了各种容器管理工具(如分发、版本,移植等)让用户无需关注底层的操作,可以简单明了的管理和使用容器,可以将容器理解为一种沙盒。每个容器内运行一个应用,不同的容器相互隔离,容器之间也可以简历通信机制。容器本身对资源的需求十分有限,有时候直接把容器当做应用本身没有任何问题。
1.1、为什么使用docker
docker能够在任何平台高效的构建应用,能够脱离底层机器,具体来说,docker在开发和运维中,有下面几个优势:
#更快速交付和部署。开发人员可以使用镜像来快速构建一套标准的开发环境,快速的创建,删除容器,实现快速迭代,大量节约开发,测试,部署的时间。
#更高效的资源利用。docker容器的运行不需要额外的虚拟化管理程序支持,他是内核级别的虚拟化,可以实现更高的性能,同时对资源的额外需求很低。
#更轻松的扩展和迁移。docker容器几乎可以在任何平台上运行,包括物理机,虚拟机,云平台,个人电脑,服务器等。
#更简单的更新管理。使用dockerfile,只要小小的配置修改,就可以替代以往的大量的更新工作。并且所有的修改都以增量的方式进行分发和更新,从而实现自动化并且高效的容器管理。
2.docker安装
2.1、修改镜像源
##下载repo源
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
#更改国外镜像源为国内(中科大)
sed -i 's#download.docker.com#mirrors.ustc.edu.cn/docker-ce#g' /etc/yum.repos.d/docker-ce.repo
2.2、安装docker
yum install docker-ce -y