目录
一、Docker概述
1.1Docker是什么
1.2Docker和虚拟机的区别
1.3使用场景
1.4 Docker 三要素(核心组件)
1.5六大名称空间
1.6 Docker引擎
1.7资源控制——cgroups
1.8容器特性
1.9 容器小的架构体系
二、Docker和虚拟化的区别
三、docker安装步骤详解
一、Docker概述
1.1Docker是什么
- 是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源
- 是在Linux容器里运行应用的开源工具
- 是一种轻量级的“虚拟机”
- Docker的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。
1.2Docker和虚拟机的区别
1.3使用场景
- 对应用的打包与部署自动化
- 创建轻量、私密的PAAS环境
- 实现自动化测试和持续的集成/部署
- 部署与扩展webapp、数据库和后台服务
①打包应用程序部署简单
②可脱离底层硬件任意迁移(实现了应用的隔离,将应用拆分并进行解耦)例如:需要把服务器从腾讯云迁移到阿里云,如果采用的是 Docker 容器技术,整个迁移的过程只需要在新的服务器上启动我们需要的容器就可以了。
③适合做微服务的部署
④适合持续集成和持续交付(CI/CD):开发到测试发布
1.4 Docker 三要素(核心组件)
- 镜像:创建容器的基础,就是一个可执行的压缩包,是一个只读模板,包含运行应用程序所需要的所有资源。
- 容器:基于镜像创建的运行实例。容器间相互隔离。
- 仓库:用于集中存放镜像的地方,分为公有仓库和私有仓库。
- 客户端发起各种各样的命令,给与主机
- 主机会调用镜像,如果有镜像直接用,运行为容器
- 如果镜像里没有会到registry公共仓库去拉去镜像,拉到本地后再运行为容器
1.5六大名称空间
namespace资源隔离——用容器技术封装
1.6 Docker引擎
Docker Engine是具有以下主要组件的客户端-服务器(C/S架构)应用程序:
- server端:服务器是一种长期运行的程序,称为守护程序进程( dockerd命令)。
- client端:REST API,它指定程序可以用来与守护程序进行通信并指示其操作的接口。
- 命令行界面(cLI)客户端((docker命令)。
docker run
docker start
docker rm
1.7资源控制——cgroups
- 六种名称空间是由cgroups管理的
- 最后一种centos的cgroups管理版本是3.8版本,3.6和3.5用不了
- cgroups 管理linux内核态中资源管理的模块
- cgroups 管理一些系统资源
- 不是docker原生的。
1.8容器特性
特性——》性能损耗10-20%
- 灵活:即使是最复杂的应用也可以集装箱化。
- 轻量级:容器利用并共享主机内核。
- 可互换:可以即时部署更新和升级。
- 便携式:可以在本地构建,部署到云,并在任何地方运行。
- 可扩展:可以增加并自动分发容器副本。
- 可堆叠:可以垂直和即时堆叠服务。
1.9 容器小的架构体系
二、Docker和虚拟化的区别
- 容器是依赖于内核来隔离,彼此的关系像共享一样,所以安全性较之虚拟机差一些,毕竟不是完全隔离。所以若一个容器被黑客攻破,宿主机基本也就没了。
- 这里也不是完全没有办法,那就是 cgroup 资源分配,其能提供一定的安全机制
三、docker安装步骤详解
docker初期版本是1.13(同一版本,开源)
——》分类型 1.15 - 1.17 过程中分成两种。
①开源社区 docker-ce ②企业版 docker-ee
目前 Docker 只能支持 64 位系统。
1.#关闭防火墙
systemctl stop firewalld.service
setenforce 0
2.#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
--------------------------------------------------------------------------------
#yum-utils:提供了 yum-config-manager 工具。
#device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
#device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
--------------------------------------------------------------------------------
3.#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.#安装 Docker-CE 社区版并设置为开机自动启动
yum install -y docker-ce
systemctl start docker.service
systemctl enable docker.service
5.#查看 docker 版本信息
docker version
编译安装
tar zxvf docker-19.03.9.tgz
mv docker/* /usr/bin
cat > /usr/lib/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF