欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Fedora 31安装docker

程序员文章站 2024-03-25 17:20:16
...

安装教程原文地址

  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
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
解决办法:

vim /etc/default/grub

在 “ GRUB_CMDLINE_LINUX= ”里面新增内容 systemd.unified_cgroup_hierarchy=0
Fedora 31安装docker
保存退出后,输入 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”

相关标签: 解决方法