一、介绍
容器虚拟化技术(带环境安装的一种解决方案)
打破程序即应用的观念,透过镜像image将作业系统核心除外,运用应用程序所需要的运行环境,由上而下打包,达到应用程序跨平台间的无缝接轨运作。
Docker是基于Go语言实现的云开源项目。
Docker的主要目标是“Build ,Ship and Run Any App ,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的App及其运行环境能够做到“一次镜像,处处运行”。
通过将应用打成镜像,通过镜像成为运行Docker容器上面的实例,而Docker容器在任何系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
二、与传统虚拟化技术比较
Docker是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统虚拟机则是在硬件层面实现虚拟化。与传统的虚拟机相比,Docker优势体现为启动速度快,占用体积小。
不同:
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需应用进程;
容器内的应用进程直接运行于宿主机内核,容器内没有自己的内核且也没有进行硬件虚拟,因此容器要比传统虚拟机更为轻便;
每个容器之间相互隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。
三、特点
轻量级、易拓展
四、安装与卸载
docker并非是一个通用的容器工具,它依赖于已存在并运行的Linux内核环境。
docker实质上是在已经运行的Linux下制造一个隔离的文件环境,因此它执行的效率几乎等同于所部署的Linux主机。
如果其他系统想部署docker,就必须安装一个虚拟Linux环境。
三要素:容器、镜像、仓库
三者关系:容器是镜像的实例,仓库是存放镜像的地方
centos安装:https://docs.docker.com/engine/install/centos/
1、卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安装gcc相关
yum -y install gcc
yum -y install gcc-c++
3、安装需要的软件包
yum install -y yum-utils
4、设置stable镜像仓库(国内推荐阿里云)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5、更新yum软件包索引
yum makecache fast
6、安装docker ce
yum install docker-ce docker-ce-cli containerd.io
7、启动docker
systemctl start docker
8、卸载docker
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
9、配置阿里云镜像加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://dvh5tds52y.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker