Docker安装

配置主机网卡转发

执行以下命令,查看值是否为1,如不为1,则更改值为1.

sysctl -a | grep -w net.ipv4.ip_forward

image-20230113152917425

更改值为1,执行以下命令:

设置网卡转发

cat <<EOF > /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
EOF

生效配置

sysctl -p /etc/sysctl.d/docker.conf

image-20230113153359737

使用yum配置Docker

配置Docker安装源

根据自己的操作系统版本下载对应的源文件,阿里云下载地址:https://mirrors.aliyun.com/docker-ce/

image-20230113154732782

我使用的是RockyLinux9版本的,使用以下配置源文件。

下载并写入源
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

image-20230113154844898

确认源是否生效
cat /etc/yum.repos.d/docker-ce.repo 

image-20230113154938782

重新建立yum缓存库
yum clean all && yum makecache

image-20230113155056901

安装Docker

安装

yum -y install docker-ce

image-20230113160214596

Docker安装异常

软件包 docker-ce-3:20.10.22-3.el9.x86_64 需要 containerd.io >= 1.4.1,但没有提供者可以被安装
[root@localhost ~]# yum -y install docker-ce
上次元数据过期检查:0:06:42 前,执行于 2023年01月13日 星期五 15时46分25秒。
错误:
 问题: 软件包 docker-ce-3:20.10.22-3.el9.x86_64 需要 containerd.io >= 1.4.1,但没有提供者可以被安装

  - 软件包 containerd.io-1.6.10-3.1.el9.x86_64 与 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.10-3.1.el9.x86_64 取代了 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)

  - 软件包 containerd.io-1.6.11-3.1.el9.x86_64 与 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.11-3.1.el9.x86_64 取代了 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)

  - 软件包 containerd.io-1.6.12-3.1.el9.x86_64 与 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.12-3.1.el9.x86_64 取代了 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)

  - 软件包 containerd.io-1.6.13-3.1.el9.x86_64 与 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.13-3.1.el9.x86_64 取代了 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)

  - 软件包 containerd.io-1.6.14-3.1.el9.x86_64 与 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.14-3.1.el9.x86_64 取代了 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)

  - 软件包 containerd.io-1.6.15-3.1.el9.x86_64 与 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.15-3.1.el9.x86_64 取代了 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)

  - 软件包 containerd.io-1.6.4-3.1.el9.x86_64 与 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.4-3.1.el9.x86_64 取代了 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)

  - 软件包 containerd.io-1.6.6-3.1.el9.x86_64 与 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.6-3.1.el9.x86_64 取代了 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)

  - 软件包 containerd.io-1.6.7-3.1.el9.x86_64 与 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.7-3.1.el9.x86_64 取代了 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)

  - 软件包 containerd.io-1.6.8-3.1.el9.x86_64 与 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.8-3.1.el9.x86_64 取代了 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)

  - 软件包 containerd.io-1.6.9-3.1.el9.x86_64 与 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.9-3.1.el9.x86_64 取代了 runc(由 runc-4:1.1.4-1.el9_1.x86_64 提供)

  - 安装的软件包的问题 buildah-1:1.24.2-4.el9_0.x86_64

  - 软件包 buildah-1:1.24.2-4.el9_0.x86_64 需要 runc >= 1.0.0-26,但没有提供者可以被安装

  - 软件包 buildah-1:1.27.2-2.el9_1.x86_64 需要 runc >= 1.0.0-26,但没有提供者可以被安装

  - 软件包 containerd.io-1.6.10-3.1.el9.x86_64 与 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.10-3.1.el9.x86_64 取代了 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)

  - 软件包 containerd.io-1.6.11-3.1.el9.x86_64 与 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.11-3.1.el9.x86_64 取代了 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)

  - 软件包 containerd.io-1.6.12-3.1.el9.x86_64 与 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.12-3.1.el9.x86_64 取代了 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)

  - 软件包 containerd.io-1.6.13-3.1.el9.x86_64 与 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.13-3.1.el9.x86_64 取代了 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)

  - 软件包 containerd.io-1.6.14-3.1.el9.x86_64 与 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.14-3.1.el9.x86_64 取代了 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)

  - 软件包 containerd.io-1.6.15-3.1.el9.x86_64 与 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.15-3.1.el9.x86_64 取代了 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)

  - 软件包 containerd.io-1.6.4-3.1.el9.x86_64 与 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.4-3.1.el9.x86_64 取代了 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)

  - 软件包 containerd.io-1.6.6-3.1.el9.x86_64 与 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.6-3.1.el9.x86_64 取代了 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)

  - 软件包 containerd.io-1.6.7-3.1.el9.x86_64 与 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.7-3.1.el9.x86_64 取代了 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)

  - 软件包 containerd.io-1.6.8-3.1.el9.x86_64 与 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.8-3.1.el9.x86_64 取代了 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)

  - 软件包 containerd.io-1.6.9-3.1.el9.x86_64 与 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)冲突

  - 软件包 containerd.io-1.6.9-3.1.el9.x86_64 取代了 runc(由 runc-3:1.1.0-2.el9.x86_64 提供)

  - 无法为该任务安装最佳候选
    (尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选) 

image-20230113160041575

解决方式
yum remove runc

image-20230113160115444

卸载有版本冲突的runc包,重新安装docker-ce即可。

设置Docker开机自启动

systemctl enable docker

image-20230113160631936

启动Docker

systemctl start docker

image-20230113160650411

配置Docker

​ 默认docker使用国外的仓库,导致在国内访问速率过慢,而一些大厂做了一些镜像站点,用于加速docker的访问速度。

可以通过以下地址开通一下阿里提供的docker镜像服务,用来加速docker的访问速度。

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

image-20230113161503634

创建以下文件,进行配置docker镜像源。

mkdir -p /etc/docker
vi /etc/docker/daemon.json
{
  "registry-mirrors" : [
    "https://dockerhub.azk8s.cn",
    "https://registry.docker-cn.com",
    "https://doxo3j7y.mirror.aliyuncs.com"
  ]
}

配置完毕后,重启docker服务即可生效。

systemctl restart docker
THE END