安装教程原文地址
sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager \
--add-repo \
https://mirrors.ustc.edu.cn/docker-ce/linux/fedora/docker-ce.repo
# 官方源
# sudo dnf config-manager \
# --add-repo \
# https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf update #更新dnf软件缓存
sudo dnf install docker-ce #安装docker ce
启动docker ce
sudo systemctl enable docker #设置docker开机自启
sudo systemctl start docker #启动docker
建立 docker 用户组
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
建立 docker 组:
sudo groupadd docker
将当前用户加入 docker 组:
sudo usermod -aG docker $USER
配置镜像加速器
国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如:
Azure 中国镜像 https://dockerhub.azk8s.cn
阿里云加速器(需登录账号获取)
网易云加速器 https://hub-mirror.c.163.com
由于镜像服务可能出现宕机,建议同时配置多个镜像。各个镜像站测试结果请到 docker-practice/docker-registry-cn-mirror-test 查看。
国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考官方文档。
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://hub-mirror.c.163.com"
]
}
注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。
8. 验证docker是否安装成功,输入如下命令
docker run hello-world
如果出现这种效果,代表docker安装成功
9. 如果出现
docker: Error response from daemon:
OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:297:
applying cgroup configuration for process caused \"open /sys/fs/cgroup/docker/cpuset.cpus.effective: no such file or directory\"": unknown.
这种错误,这个错误的原因是由于Fedora 31所引起的。
解决办法:
vim /etc/default/grub
在 “ GRUB_CMDLINE_LINUX= ”里面新增内容 systemd.unified_cgroup_hierarchy=0
保存退出后,输入 grub2-mkconfig
,再重启,即可解决问题。这只是一种解决手段
或者根据官方提供的解决手段,原文地址
以下是官方关于这个问题的原话:
The Docker package has been removed from Fedora 31. It has been replaced by the upstream package moby-engine, which includes the Docker CLI as well as the Docker Engine. However, we recommend instead that you use Package-x-generic-16.pngpodman, which is a Cgroups v2-compatible container engine whose CLI is compatible with Docker’s. Fedora 31 uses Cgroups v2 by default. The moby-engine package does not support Cgroups v2 yet, so if you need to run the moby-engine or run the Docker CE package, then you need to switch the system to using Cgroups v1, by passing the kernel parameter systemd.unified_cgroup_hierarchy=0. To do this permanently, run:
Docker软件包已从Fedora 31中删除。它已由上游软件包moby-engine取代,该软件包包括Docker CLI和Docker Engine。但是,我们建议您改为使用,这是Cgroups v2兼容的容器引擎,其CLI与Docker的CLI兼容。Fedora 31默认使用Cgroups v2。moby-engine软件包尚不支持Cgroups v2,因此,如果需要运行moby-engine或运行Docker CE软件包,则需要通过传递内核参数systemd.unified_cgroup_hierarchy =将系统切换为使用Cgroups v1。0。要永久执行此操作,请运行:
sudo grubby --update-kernel = ALL --args =“ systemd.unified_cgroup_hierarchy = 0”