目录
1、Docker 是什么?
Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的Go语言实现。项目后来加入了Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何支持docker的机器上运行。容器是完全使用沙箱机制,相互之间不会有任何接口调用。
Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被装在集装箱里,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送蔬菜的船和专门运送货物的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。
docker 就是类似的理念。云计算就好比大货轮。docker 就是集装箱。
2、Docker 的优点
1)快
运行时的性能快,管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。
2)敏捷
像虚拟机一样敏捷,而且会更便宜,在 bare metal(裸机)上布署像点个按钮一样简单。
3)灵活
将应用和系统“容器化”,不添加额外的操作系统
4)轻量
在一台服务器上可以布署 100~1000 个 Containers 容器。
5)便宜
开源的,免费的,低成本的。
3、Docker 的缺点
1)内核漏洞
Docker内核攻击对于容器化环境来说可能是致命性的,因为容器与主机共享相同的系统内核,因此单独信任容器内置保护机制是不够的。
容器的隔离性使得某个应用程序的漏洞不会直接影响到其他容器的应用程序,但是漏洞可能会破坏与其他容器所共享的单一的操作系统,进而影响机器上的其他容器。如果漏洞允许代码执行,那么它将在主机操作系统上执行,而不是在容器内执行;如果此漏洞允许任意内存访问,则攻击者可以更改或读取任何其他容器的任何数据。
2)资源开销
Docker由于宿主机上的所有容器是共享相同的内核和相同的资源,如果对某些资源(CPU、内存、磁盘等)的访问不受限制,那么异常的容器将占用整个宿主机的资源,从而影响其他容器的运行,影响应用程序。
4、安装 Docker
主机 ip:192.168.71.129
Centos7.6-centos7.9
2c/4g
1、配置主机名:
[root@master1 ~]# hostnamectl set-hostname master1 && bash
2、关闭防火墙
[root@master1 ~]# systemctl stop firewalld && systemctl disable firewalld
3、安装 iptables防火墙
[root@master1 ~]# yum install iptables-services -y
4、关闭并禁用 iptables 防火墙
[root@master1 ~]# service iptables stop && systemctl disable iptables
5、清空防火墙规则
[root@master1 ~]# iptables -F
6、关闭 selinux
[root@master1 ~]# setenforce 0 #临时关闭
[root@master1 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #永久关闭
7、配置时间同步
[root@master1 ~]# yum install -y ntp ntpdate
[root@master1 ~]# ntpdate cn.pool.ntp.org
8、编写计划任务 并 重启 crond 服务使配置生效