Docker概念
相当于传统的货运集中箱,管理容器的引擎,为应用管理打包、部署平台,而非虚拟化技术。
基于docker的云平台:
SaaS:App、云盘、网站等。软件级服务。
PaaS:nginx、mysql、redis等。平台级服务。
容器(container)和虚拟机(VM)区别:
虚拟机 | 容器 |
---|---|
宿主机上运行虚拟机OS | 共享宿主机OS |
镜像较大(GB) | 镜像小(MB) |
操作系统额外的CPU、内存消耗 | 几乎无性能损耗 |
笨重、与虚拟化技术 耦合度高 | 轻量、灵活迁移 |
完全隔离 | 安全隔离 |
慢、分钟级 | 快速、秒级 |
一般几十个 | 单机支持上千容器 |
容器和物理机共享一个内核kernel,少了一层virtualization station,cuest OS.
docker容器:于物理机做到安全隔离。共享宿主机OS,几乎没有性能上的损耗。镜像小(MB)轻量、灵活迁移,单机一般可以支持上千容器。
1、创建一个容器
阿里云开源镜像站:
https://developer.aliyun.com/mirror/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #添加软件源信息
vim docker-ce.repo
yum -y install docker-ce #通常会有软件依赖性
cat /etc/redhat-release #查看系统版本
yum -y install docker-ce container-selinux-2.77-1.el7.noarch.rpm #下载解决依赖性
systemctl start docker #开启
docker info #查看信息
cd /var/lib/docker #容器数据地址
yum install -y bash-*
2、以容器的方式部署一个服务
(1)、加速器设置
mkdir -p /etc/docker
vim daemon.json
{
"registry-mirrors": ["https://owrv442h.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker #部署加速器
(2)、拉取
docker pull nginx
docker images #查看
ip addr #查看分配ip
yum install -y bridge-utils
docker run -d --name nginx -p 80:80 nginx #80(宿主):80(容器)
docker history nginx:latest
iptables -t nat -nL
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:172.17.0.2:80
网页查看成功安装nginx