当前位置: 首页 > article >正文

openEuler22.03LTS系统升级docker至26.1.4以支持启用ip6tables功能

本文记录了openEuler22.03LTS将docker升级由18.09.0升级至26.1.4的过程(当前docker最新版本为27.5.1,生产环境为保障稳定性,选择升级到上一个大版本26的最新小版本)。

一、现有环境

1、系统版本
[root@localhost opt]# cat /etc/os-release 
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31"
 2、docker版本
[root@localhost opt]# docker --version
Docker version 18.09.0, build 4ca0e26

二、升级准备

1、卸载现有版本
[root@localhost opt]# yum  remove docker -y      
Dependencies resolved.
=========================================================================================================================================================================================================================================
 Package                                                   Architecture                                       Version                                                          Repository                                           Size
=========================================================================================================================================================================================================================================
Removing:
 docker-engine                                             x86_64                                             2:18.09.0-335.oe2203                                             @update                                             160 M

Transaction Summary
=========================================================================================================================================================================================================================================
Remove  1 Package

Freed space: 160 M
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                 1/1 
  Running scriptlet: docker-engine-2:18.09.0-335.oe2203.x86_64                                                                                                                                                                       1/1 
Removed /etc/systemd/system/multi-user.target.wants/docker.service.

  Erasing          : docker-engine-2:18.09.0-335.oe2203.x86_64                                                                                                                                                                       1/1 
  Running scriptlet: docker-engine-2:18.09.0-335.oe2203.x86_64                                                                                                                                                                       1/1 
  Verifying        : docker-engine-2:18.09.0-335.oe2203.x86_64                                                                                                                                                                       1/1 

Removed:
  docker-engine-2:18.09.0-335.oe2203.x86_64                                                                                                                                                                                              

Complete!
 2、从docker官网下载目标软件包

下载链接:

docker-26.1.4官网下载

下载实作

[root@localhost opt]# wget https://download.docker.com/linux/static/stable/x86_64/docker-26.1.4.tgz
--2025-02-07 13:45:27--  https://download.docker.com/linux/static/stable/x86_64/docker-26.1.4.tgz
正在解析主机 download.docker.com (download.docker.com)... 3.170.229.46, 3.170.229.96, 3.170.229.111, ...
正在连接 download.docker.com (download.docker.com)|3.170.229.46|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:73759281 (70M) [application/x-tar]
正在保存至: “docker-26.1.4.tgz”

docker-26.1.4.tgz                                        100%[=====================================================================================================================================>]  70.34M   245KB/s  用时 4m 41s  

2025-02-07 13:50:09 (256 KB/s) - 已保存 “docker-26.1.4.tgz” [73759281/73759281])
[root@localhost opt]# ll
..
-rw-r--r--. 1 root root  71M  6月 18  2024 docker-26.1.4.tgz

三、升级软件

1、解压软件包
[root@localhost opt]# tar -xzvf docker-26.1.4.tgz 
docker/
docker/docker-init
docker/docker-proxy
docker/docker
docker/containerd-shim-runc-v2
docker/runc
docker/ctr
docker/dockerd
docker/containerd
[root@localhost opt]# ll docker
总用量 190M
-rwxr-xr-x. 1 AAAA AAAA  38M  6月  5  2024 containerd
-rwxr-xr-x. 1 AAAA AAAA  12M  6月  5  2024 containerd-shim-runc-v2
-rwxr-xr-x. 1 AAAA AAAA  19M  6月  5  2024 ctr
-rwxr-xr-x. 1 AAAA AAAA  37M  6月  5  2024 docker
-rwxr-xr-x. 1 AAAA AAAA  68M  6月  5  2024 dockerd
-rwxr-xr-x. 1 AAAA AAAA 692K  6月  5  2024 docker-init
-rwxr-xr-x. 1 AAAA AAAA 1.9M  6月  5  2024 docker-proxy
-rwxr-xr-x. 1 AAAA AAAA  15M  6月  5  2024 runc
2、复制文件到/usr/bin目录 
[root@localhost opt]# cp docker/* /usr/bin
3、编写service文件 
[root@localhost opt]# vi docker.service
...
[root@localhost opt]# cat docker.service 
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Environment="HTTP_PROXY=http://192.168.80.1:50691"
Environment="HTTPS_PROXY=http://192.168.80.1:50691"
Type=notify
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
Environment=GOTRACEBACK=crash

ExecStart=/usr/bin/dockerd $OPTIONS \
                           $DOCKER_STORAGE_OPTIONS \
                           $DOCKER_NETWORK_OPTIONS \
                           $INSECURE_REGISTRY
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process

Restart=on-failure 
StartLimitBurst=3 
StartLimitInterval=60s 

[Install]
WantedBy=multi-user.target
4、将service文件复制到相应文件夹 
[root@localhost opt]# chmod 644 docker.service
[root@localhost opt]# cp docker.service /usr/lib/systemd/system/docker.service
 5、启动服务
[root@localhost opt]# systemctl daemon-reload
[root@localhost opt]# systemctl start docker
[root@localhost opt]# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
6、验证版本 
[root@localhost opt]# docker --version
Docker version 26.1.4, build 5650f9b
[root@localhost opt]# docker version
Client:
 Version:           26.1.4
 API version:       1.45
 Go version:        go1.21.11
 Git commit:        5650f9b
 Built:             Wed Jun  5 11:27:57 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.1.4
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.11
  Git commit:       de5c9cf
  Built:            Wed Jun  5 11:29:25 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.7.18
  GitCommit:        ae71819c4f5e67bb4d5ae76a6b735f29cc25774e
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

 升级成功。

 四、验证启用ip6tables功能

本次升级旨在解决openEuler22.03LTS原生docker不支持ip6tables的问题,,(docker engine 的版本从20.10.2及以上才开始支持ip6tables,这里ip6tables指由docker自动配置 IPv6 的防火墙规则。)

低版本docker引擎配置启用ip6tables,会出现以下报错日志无法启动

....systemd[1]: Starting Docker Application Container Engine...
...dockerd[5597]: unable to configure the Docker daemon with file /etc/docker/daemon.jso>
...systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
...systemd[1]: docker.service: Failed with result 'exit-code'.
...: Failed to start Docker Application Container Engine.
...: Starting Docker Application Container Engine...

 测试配置启用ip6tables并重启服务

[root@localhost opt]# vi /etc/docker/daemon.json
[root@localhost opt]# cat /etc/docker/daemon.json
{
    "ipv6": true,
    "fixed-cidr-v6": "2001:db8:1::/64",
    "experimental":true,
    "ip6tables": true
}
[root@localhost opt]# systemctl restart docker

正常通过。


http://www.kler.cn/a/536684.html

相关文章:

  • [论文阅读] Knowledge Fusion of Large Language Models
  • uniapp mqttjs 小程序开发
  • Spring Bean生命周期
  • 【漫画机器学习】083.安斯库姆四重奏(Anscombe‘s Quartet)
  • go流程控制
  • Django框架丨从零开始的Django入门学习
  • unity 音频的使用AudioSource
  • 【自动化测试】使用Python selenium类库模拟手人工操作网页
  • Kafka系列教程 - Kafka 集群 -4
  • 动手学图神经网络(12):MovieLens上的链接回归
  • [Harmonyos]相机功能开发基础知识篇(持续更新)
  • 云计算中的DevOps是什么?为什么它很重要?
  • 20240824 美团 笔试
  • [ Spring] Integrate Spring Boot Dubbo with Nacos 2025
  • 【论文写作】深度学习无线通信领域的一些国际著名期刊
  • 15:00面试,15:07就出来了,问的问题有点变态。。。
  • 项目实训:表白墙,图书管理系统
  • windows 10/11 开启wsl2运行linux 使用cuda方法
  • Flink CDC YAML:面向数据集成的 API 设计
  • Excel 融合 deepseek
  • JumpServer堡垒机管理服务器与数据库资产
  • 【论文阅读】Adversarial Detection: Attacking Object Detection in Real Time
  • 前端 CSS 动态设置样式::class、:style 等技巧详解
  • 基于WOA鲸鱼优化的TCN时间卷积神经网络时间序列预测算法matlab仿真
  • 【玩转 Postman 接口测试与开发2_019】第15章:利用 Postman 初探 API 性能测试(含实战截图)
  • FFmpeg使用GPU编解码,及在C++代码中实现FFmpeg使用GPU编解码