Fedora 31安装docker

安装教程原文地址

  1. 如果之前安装了docker,需要先卸载。卸载命令如下
    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
    
  2. 使用dnf安装,执行以下命令安装依赖包
    sudo dnf -y install dnf-plugins-core
  3. 执行下面的命令添加 dnf 软件源,使用的是国内的镜像,官方源在注释中:
    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
    
  4. 更新 dnf 软件缓存并安装docker ce
    sudo dnf update   #更新dnf软件缓存
    sudo dnf install docker-ce   #安装docker ce
  1. 启动docker ce

     sudo systemctl enable docker     #设置docker开机自启
     sudo systemctl start docker        #启动docker
    
  2. 建立 docker 用户组
    默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

    建立 docker 组:
    sudo groupadd docker
    将当前用户加入 docker 组:
    sudo usermod -aG docker $USER

  3. 配置镜像加速器
    国内从 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安装成功
Fedora 31安装docker_第1张图片
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所引起的。
Fedora 31安装docker_第2张图片
解决办法:

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”

你可能感兴趣的:(解决方法,docker)