目录
一、Docker概述
1.1Docker简介
-
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
-
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
-
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
(沙箱是一个虚拟系统程序,沙箱提供的环境相对于每一个运行的程序都是独立的,而且不会对现有的系统产生影响,即沙箱提供一个限制该应用程序对系统资源的访问权限。) -
docker可以在任意环境部署的原因:只要能装上docker-engine 引擎,就能使用;它实现了docker环境的跨平台。
-
容器不依赖于系统,依赖于引擎。
-
容器是一个应用层抽象;虚拟机(VM)是一个物理硬件层抽象
例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用 ,例如前端,后端以及数据库。
1.2Docker与虚拟机的区别
Docker | 虚拟机 | |
---|---|---|
占用资源 | 较少 | 较多 |
启动时间 | 短,十几毫秒 | 较长,几分钟 |
安全 | 共享内核,不安全 | 系统逻辑隔离,安全 |
服务 | —个容器一般只跑—个服务 | 可以运行多个服务 |
是否装系统 | 不需要 | 需要 |
1.3Docker的使用场景
- 打包应用程序简化部署
- 可脱离底层硬件任意迁移
二、Docker的核心概念及安装
2.1Docker三要素
- 镜像
一个面向Docker容器引擎的只读模板 - 容器
从镜像创建的运行实例 - 仓库
集中保存镜像的地方;分公有和私有仓库
2.2部署19版Docker-CE(使用yum仓库)
1.安装依赖包
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-utils提供了yum-config-manager
device mapper存储驱动程序需要device-mapper-persistent-data和lvm2
device mapper是Linux2.6 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
2.设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装Docker-CE
yum -y install docker-ce
systemctl stop firewalld.service
setenforce 0
sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config
systemctl start docker.service
systemctl enable docker.service
4.镜像加速(到阿里云镜像加速寻找自己的加速器)
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://sl7ft9a0.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
5.网络优化
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
service network restart
systemctl restart docker