什么是Docker
采用Linux container(容器) 基于Golang语言,采用Apache2.0协议开发的开源容器管理引擎
底层技术:
——采用overlay(存储驱动引擎) UFS 分层文件系统(最大支持128层)作为镜像和可写层的融合点
overlay是utf-8的实现结果(overlay影响docker性能)
——采用cgroup 进行容器的资源限制
——采用namespace(隔离内核) 实现进程之间的隔离
——采用bridge(网桥) 以及 iptables 实现数据的流通——容器间的互相连通以及外部访问
——采用chroot 伪根 重定向容器内部的根视图
CNCF云原生容器基金会
传统虚拟化:
优点:安全性高,服务运行在不同的内核
缺点:资源利用效率低,灵活性差(创建耗时长)——需要创建操作系统,再部署环境
docker
优点:资源利用率高,服务运行在同一个内核,灵活性强(能迅速创建)
缺点:安全性较低,但是完全能达到使用要求
容器三要素
镜像:环境的封装 ——传统:ISO
容器:展开后运行的环境 ——传统:虚拟机
仓库:存放镜像的服务 hub.docker.com ——发行版下载的服务器
优化过程
镜像只读,在上层加载可写层,所有修改的数据全部保存在可写层中
镜像是分层的,通过UFS(联合文件系统)展示一个完整的镜像使用
Docker 的最优环境
系统:linux系列,最好内核安装在4.0上
centos替代品
OracleLinux:迁移脚本
Rocky Linux :Rocky Linux 原centos团队
Docker与虚拟机之间的比较
Docker是在操作系统进程层面的隔离,而虚拟机是在物理资源层面的隔离,两者完全不同,另外,我们也可以通过下面的一个比较,了解两者的根本性差异。
Docker 自身组件
> Docker Client:Docker 的客户端
> Docker Server:Docker daemon 的主要组成部分,接受用户通过 Docker Client 发出的请求,并按照相应的路由规则实现路由分发
> Docker 镜像:Docker 镜像运行之后变成容器(docker run)
docker 安装
安装centos7
注意:磁盘分区100GB
boot分区1000MB
虚拟内存应该如何设置?
·虚拟内存设置为物理内存的两倍,但一般不超过4个G,超过使用4G
·不能配置虚拟内存
kubernetes 官方要求安装时不得使用虚拟内存,否则报错
·必须使用虚拟内存
比如,PHP在编译安装时会检测当前虚拟内存是否会大于600MB,如果不大于会报错
初始化配置
1、配置网卡
仅主机 | 192.168.9.150 |
NAT | 192.168.117.150 |
网关、DNS等
安装工具包:
yum -y install lrzsz net-tools vim iptables-services
关闭selinux:
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
修改防火墙:
systemctl disable firewalld systemctl stop firewalld systemctl start iptables systemctl enable iptables iptables -F service iptables save init 0 |
快照
安装docker:
方法1:官方安装脚本
方法2:yum
方法3:rpm
上传文件
yum -y install docker-ce-*
#保证可连接公网,docker必须重启,与防火墙紧密结合
systemctl enable docker reboot |
hub加速器:
docker run hello-world
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
cat /etc/docker/daemon.json
道云通道,也可更换为阿里通道 https://kfp63jaj.mirror.aliyuncs.com \
systemctl restart docker
docker info
docker 应用部署
WordPress
需要环境:
PHP 5.6 或更新软件
MySQL 5.6 或 更新版本
Apache 和 mod_rewrite 模块
docker run --name db --env MYSQL_ROOT_PASSWORD=example -d mariadb
docker run --name MyWordPress --link db:mysql -p 8080:80 -d wordpress