介绍
是什么?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
组成
一个完整的Docker有以下几个部分组成:
Docker Client
客户端Docker Daemon
守护进程Docker Image
镜像Docker Container
容器
Docker 是 PaaS
提供商 dotCloud
开源的一个基于 LXC
的高级容器引擎, 基于go语言
并遵从Apache2.0
协议开源。
局限
Docker并不是全能的,设计之初也不是KVM之类虚拟化手段的替代品,简单总结几点:
- Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用
- LXC是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的
- 隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库
- 网络管理相对简单,主要是基于namespace隔离
- cgroup的cpu和cpuset提供的cpu功能相比KVM的等虚拟化方案相比难以度量(所以dotcloud主要是按内存收费)
- Docker对disk的管理比较有限
- container随着用户进程的停止而销毁,container中的log等用户数据不便收集
安装
官方安装文档:https://docs.docker.com/engine/install/centos/
- 检查内核版本[^1]
uname -r
-
升级内核
# 更新所有软件到最新版本 yum -y update # 启用ELRepo仓库 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-8.0-1.el8.elrepo.noarch.rpm # 安装最新稳定版内核 yum --enablerepo=elrepo-kernel install kernel-ml # 重启 reboot
- 安装
Docker
yum install -y docker
- 启动
Docker
systemctl start docker
- 设置
Docker
服务为开机启动
systemctl enable docker
- 查询
Docker
版本
docker -v