1. 关于 Docker
Docker 是依赖于 Linux 内核的 LXC、Cgroup 等技术所实现的轻量级的虚拟化方案。和 VMware、Virtual Box 等传统虚拟化方案相比,Docker 的虚拟化方式的代价更小(性能损耗更低),原因在于,Docker 是直接在宿主机( Linux )上实现虚拟化,直接复用宿主机的操作系统。
表面上看起来,在 Docker 中也存在宿主机和虚拟机的概念,但是在底层实现上这里只有一个操作系统,而不是传统虚拟化方案中的 2 个。
- 传统虚拟化方案:
- Docker虚拟化方案:
2. 安装 Docker 的前期准备工作
- 开发环境中,我们通常会关闭防火墙。
systemctl status firewalld # 查看防火墙状态 systemctl disable firewalld --now # 禁用,且立即生效
- 第 1 步:卸载旧版本
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
- 第 2 步:为配置 docker 软件源作准备
yum install -y
yum-utils
device-mapper-persistent-data
lvm2
- 第 3 步:添加 docker 软件源
yum-config-manager --add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新 yum 软件源的清单
yum makecache
- 第 4 步:验证
yum list docker-ce --showduplicates | sort -r
截至目前为止,我们干了什么? CentOS 的默认的 yum 软件源中实际上有 docker 的安装包,如果直接进行 yum install docker 也是可行的。 但是 docker 官方考虑到不同的用户对 docker 的不同版本有不同的需求(有人追求最新,有人追求稳定),他们专门提供了一个仓库/网址用以提供多个版本的 docker 的下载。 因此,我们必须告知 yum 有这样一个仓库的存在,并且未来要求 yum 从这个仓库中下载我们指定版本的 docker 。而非默认的仓库。
3. 安装 docker 并验证
- 第 1 步:从软件源下载安装
# 安装默认版本(也就是最新版)
yum install -y docker-ce
- 第 2 步:加入开机启动项
# 加入开机启动项,且立刻生效(即,现在就启动,而不用等下次系统重启)
systemctl enable docker --now
# 查看状态
systemctl status docker
- 第 3 步:验证安装是否成功
输入docker version
docker version
出现类似如下内容:
Client: Docker Engine - Community Version: 20.10.12 ... Server: Docker Engine - Community Engine: Version: 20.10.12 ...
- 第 4 步:验证连接 docker hub 网络镜像仓库
输入 docker search -f is-official=true mysql 命令,会出现类似如下结果:
NAME DESCRIPTION STARS OFFICIAL ... mysql MySQL is a widely used, open-source relation… 8819 [OK] ... mariadb MariaDB is a community-developed fork of MyS… 3102 [OK] ... percona Percona Server is a fork of the MySQL relati… 459 [OK] ...
4. 配置国内镜像
由于 docker hub 的中央镜像仓库在国外,因此有时我们连接 docker hub 从中下载镜像速度会很感人,因此,我们需要配置国内的镜像网址,从国内现在镜像文件。
补充: 国内的镜像本质上就是 docker hub 中央仓库在国内的一份缓存/备份。
- 第 1 步:创建并编辑 docker 配置文件
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
EOF
补充: 该配置文件配置了两个镜像,一个是 docker 官方在中国境内的官方镜像,一个是中科大维护的一个镜像。
- 第 2 步:重新启动 docker 服务
systemctl restart docker
查看修改结果:
docker info
会有如下内容:
... Registry Mirrors: https://docker.mirrors.ustc.edu.cn/ https://registry.docker-cn.com/ ...
5. 导入已有的镜像文件 (了解)
考虑到有些场景下的联网的不方便,docker 提供了将已下载的 images 打包导出,再在别处导入的功能。
- 导出镜像:docker save 命令
# 语法: # docker save: -o .tar # 例如: docker save mysql:8.0.16 -o mysql-8.0.16.tar
- 导入镜像:docker load 命令
# 语法: # docker load -i.tar # 例如: docker load -i mysql-8.0.16.tar



