1、Docker为什么诞生?
随着计算机硬件的性能提升,会有这些现象发生:
● 计算机上可运行的软件越来越多,不同软件之间或者相同软件不同版本之间,会造成一些冲突,这时候需要一种技术,将冲突的软件进行隔离
● 硬件性能过剩,希望将其最大限度的利用起来
● 操作系统上安装的软件,希望能完整的copy给其他人,而不用重新安装
为了应对上述需求,一般是一台电脑安装多个操作系统或者多个电脑协同工作,但缺点显而易见,很麻烦,且没法最大限度的利用硬件资源。
怎么办?
硬件虚拟化这个解决方案就普及开来并迅速成为主流。
所谓硬件虚拟化,就是某个特殊的软件,仿真出一台或者多台计算机的各种硬件,用户可以在这一台虚拟机上安装、运行操作系统(一般叫来宾操作系统,Guest OS)和各种应用,并且把 Guest OS 和上面应用软件对硬件资源的访问转发到底层的硬件上来实现。
对于Guest OS和上面的应用程序来说,这台虚拟机和普通物理计算机是完全一样没有任何区别的——除了性能可能差一点。全球第一人气的 VMware Workstation就是这么一个软件,Oracle 的 VirtualBox以及 Microsoft 的 Virtual PC都是。
这类软件英语有一个专用的单词是 Hypervisor(虚拟机管理程序)。
2、为什么Docker会比VM虚拟机快
1、docker有着比虚拟机更少的抽象层
由于docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。
2、docker利用的是宿主机的内核,而不需要加载操作系统OS内核
当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。
3、Docker安装
官网
https://docs.docker.com/engine/install/centos/
1、卸载原有的版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安装 yum-utils
sudo yum install -y yum-utils
3、添加阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、安装
sudo yum install docker-ce docker-ce-cli containerd.io
5、启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
docker的安装完毕