什么是 Docker
Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)。
Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目 已经超过 5 万 7 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 版本开始,则进一步演进为使用 runC 和 containerd。
准备工作
系统要求
Docker 支持 64 位版本 CentOS 7/8,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。
卸载旧版本
旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
安装依赖包
执行以下命令安装依赖包:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
鉴于国内网络问题,强烈建议使用国内源
执行下面的命令添加 yum 软件源:
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
如果需要测试版本的 Docker 请执行以下命令:
yum-config-manager --enable docker-ce-test
重要事项
docker 安装报Error: moby-containerd conflicts with containerd.io-1.4.4-3.1.el7.x86_64
此问题中缺少的一个关键信息是使用Azure。因为aspnetcore是在Azure devops管道中发布程序包所必需的,所以可能要使用微软的源或者更新一些配置:
curl https://packages.microsoft.com/config/rhel/7/prod.repo > ./microsoft-prod.repo
sudo cp ./microsoft-prod.repo /etc/yum.repos.d/
yum update -y
如果还是报错,可以尝试升级安装新版的containerd.io软件包
containerd.io软件包下载地址:https://download.docker.com/linux/centos/7/x86_64/edge/Packages
// 下载相关软件包
wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
// 升级containerd.io软件包
yum -y install containerd.io-1.2.6-3.3.el7.x86_64.rpm
如果要下载更高级版本,请到https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
安装docker
更新 yum 软件源缓存,并安装 docker-ce。
yum install docker-ce docker-ce-cli containerd.io
这样安装的为最新版本,如果要选择版本安装,则先列出版本信息
yum list docker-ce --showduplicates | sort -r
列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。
[root@gh-01 ~]# yum list docker-ce --showduplicates | sort -r
已加载插件:fastestmirror, langpacks
可安装的软件包
* updates: mirrors.163.com
* remi-safe: mirrors.tuna.tsinghua.edu.cn
* remi-php74: mirrors.tuna.tsinghua.edu.cn
Loading mirror speeds from cached hostfile
* extras: mirrors.163.com
* epel: hkg.mirror.rackspace.com
docker-ce.x86_64 3:20.10.7-3.el7 docker-ce-stable
docker-ce.x86_64