什么是容器
容器就是在隔离的环境运行的一个进程,如果进程停止,容器就会退出。隔离的环境拥有自己的系统文件,ip地址,主机名等
容器和虚拟化的区别
容器:共用宿主机内核,轻量级,损耗少,启动快,性能高,只能运行在linux系统上
虚拟机:需要硬件的支持,需要模拟硬件,需要走开机启动流程,可以运行不同的操作系统
Docker容器技术
Docker是一种软件的打包技术
Docker是通过进程虚拟化技术(namespaces及cgroups cpu、内存、磁盘io等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率。
Docker的主要目标是"Build,Ship and Run any App,Angwhere",构建,运输,处处运行
不存在部署服务,环境问题,做到了一次构建,处处运行
namespace 资源隔离
cgroups 进程的资源限制
kvm 虚拟磁盘文件,资源隔离
kvm 资源限制,--cpus --memory
主要组成部分
docker是传统的CS架构分为docker client和docker server,和mysql一样
docker主要组件有:镜像、容器、仓库, 网络,存储, 监控
docker也可以说是一种软件打包技术
启动容器必须需要一个镜像,仓库中只存储镜像
容器--->镜像--->仓库
安装docker
`下载repo源
curl -o /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
`替换为国内加速地址
sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
`开启yum缓存
vim /etc/yum.conf
keepcache=1
`安装docker
yum install docker-ce -y
`检查版本
docker version
`创建目录打包发送给其他节点
mkdir docker_rpm
find /var/cache/yum/x86_64/7/ -type f -name "*.rpm"|xargs mv -t docker_rpm
tar zcf docker_rpm.tar.gz docker_rpm
scp docker_rpm.tar.gz 10.0.0.11:/root/
`其他节点解压安装
tar xf docker_rpm.tar.gz
cd docker_rpm/
yum localinstall *.rpm -y
dokcer镜像加速
`此文件默认不存在,需要创建
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
]
}