openEuler22.03 LTS 真 · 离线安装 docker docker-compose
log lu 2024-09-12 11:37:01 阅读 76
本文使用:
openEuler22.03 LTS SP4,docker24.0.7,docker-compose v2.23.1
1、什么是 openEuler?
openEuler 是一个开源操作系统,由中国开源软件基金会主导,华为深度参与,面向服务器、桌面和嵌入式等领域,为用户提供安全、稳定、易用的操作系统平台。 最重要是国产的!!!
近期centos在 2024-06-30 停止维护,很多就提出来迁移到国产操作系统甚至部分地区已经下发红头文件责令替换成国产操作系统
2、原有部署架构
使用的是centos7.9,部署了docker以及docker-compose工具,需要迁移到openEuler!
由于部署的机器都是无外网访问权限(为啥没外网就不说了)所有整出需要离线安装着操作。
3、其他论坛和帖子离线安装方案 - 宣告失败
在openEuler官方查找了两篇资料是使用二进制文件安装和rpm安装,按照步骤安装是启动不了
3.1、先是找到第一篇 - 失败
这篇跟其他搜到的帖子都一样,很多、很多、很多。也不知道谁是搬谁的!!!
openEuler离线安装docker - O&M 运维 - openEuler 论坛
自行下载了docker tgz文件,按照步骤进行,死活是启动不了,本菜鸡只能小玩下java的是找不到原因,具体问题忘记了文章是后面写的没记录,大概就是找不到docker对应信息还是什么,还搞了很久无奈放弃该方案寻求另外解决办法
3.2、后面看到是rpm安装的第二篇 - 失败
openeuler 22.03离线安装docker26版本 - Installation 安装部署 - openEuler 论坛
也根据文章下载rpm安装包,无奈的来了安装docker依赖libcgroup-0.41-19.el8.x86_64.rpm,行那就先装咯,装完很棒没有问题,在安装container-selinux又依赖与python3,我只能麻了一直无线依赖
rpm -i policycoreutils-python-utils-2.9-16.el8.noarch.rpm
warning: policycoreutils-python-utils-2.9-16.el8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
error: Failed dependencies:
/usr/libexec/platform-python is needed by policycoreutils-python-utils-2.9-16.el8.noarch
python3-policycoreutils = 2.9-16.el8 is needed by policycoreutils-python-utils-2.9-16.el8.noarch
那么多机子不可能一个个这么去装,无奈宣告失败!
后面转头一想,我本地搭个有网的openEuler服务器把对应的安装包和所有的依赖下载下来再扔上去安装,可行试着搞,下面正式进而docker离线安装
4、安装文件下载
附件内包含本文说到的docker_rpms.tar.gz 和 docker-compose-linux-x86_64
openEuler离线docker部署文件: 阿里云盘分享
5、openEuler离线安装docker
5.1、先是window装了个docker desktop 跑了个openEuler22.03 LTS SP4 架构x86_64很重要不然会二进制文件架构不匹配
5.2、再将docker 镜像仓库repos.d修改成对应要使用的版本(这里就深入说了大概说下)
我在官方还是哪里看到说openEuler22是对应centos8的,这里就对应centos8的,我的是这样的
<code>[root@410b2b823b19 docker_rpms]# cat /etc/yum.repos.d/docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - x86_64
baseurl=https://download.docker.com/linux/centos/8/x86_64/stable/
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
5.3、然后将所需要安装docker的所有依赖都下载到指定目录下,
[root@410b2b823b19 docker_rpms]# yumdownloader --resolve --destdir=/tmp/docker_rpms docker-ce-24.0.7-1.el8code>
下载出这么多rpm,然后里面有docker26的跟containerd.io有两个版本,得删除了不然会冲突
5.4、然后再把这些安装包扔上去执行
这里说下因为之前有用其他方式安装过,得先卸载干净了再安装,不然会报错喔,像我这样。
(原因是文件是ARM aarch64 架构编译的,而系统是x86_64 架构的)
fork/exec /usr/local/bin/docker-proxy: exec format error
<code># 卸载所有已安装的 Docker 相关包
yum remove docker-ce docker-ce-cli containerd.io
# 删除任何残留的 Docker 配置文件和数据目录
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
rm -rf /etc/docker
rm -f /etc/systemd/system/docker.service
rm -f /etc/systemd/system/docker.socket
rm -f /usr/lib/systemd/system/docker.service
rm -f /usr/lib/systemd/system/docker.socket
# 删除缓存以确保没有旧的包
yum clean all
# 重启系统(可选)
reboot
5.5、执行(我是放在根目录下)
# 解压docker所依赖的安装包
tar -xzvf docker_rpms.tar.gz
# disablerepo禁用所有仓库 本地安装 --skip-broken 跳过已安装包(避免冲突)code>
yum --disablerepo=* localinstall /docker_rpms/*.rpm --skip-broken
#安装过程会提示是否安装docker
输入:y 回车确认即可
# 启动docker
systemctl start docker
# 查看启动状态(安装完默认未启动,需要手动执行启动命令)
systemctl status docker
# 开机自启
systemctl enable docker
# 查看docker版本
docker -v
############## 以上完成安装docker ##############
6、openEuler离线安装docker-compose
6.1、docker-compose-linux-x86_64文件复制到 /usr/local/bin 目录下
# 修改名字为 docker-compose
sudo mv /usr/local/bin/docker-compose-linux-x86_64 docker-compose
# 给予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 查看docker-compose版本
docker-compose -v
############## 以上完成安装docker-compose ##############
7、我到这里就成功咯,目前按照这个方案部署了三台都没有问题
8、其他踩坑
因为在这之前有另外项目需要迁移openEuler的就临时申请了网络安装了docker
项目是超级轻度依赖数据库,就搞了docker-compose安装mysql8.0.38
重点:
8.1、运行起来后发现mysql一直cpu飙高的问题,原以为是版本的问题换了5.7发现还是飙高,也琢磨了很久,反正用的少就摆烂不搞mysql了直接换成mariadb10.2,直接在docker-compose换下image版本就跑起来,高度兼容的!
8.2、因为部署的机器是客户提供的,硬件类不是统一的,然而使用高版本mysql就会出现以下问题。我当时用的是mysql8.0.32就出现这个问题,后面换成5.7.44就行了,如果你再不行就换成mariadb10.2
------------------------------------------------- 结束 -------------------------------------------------
另外说明下服务器没有网络,所要使用的镜像都是从另外有网的服务器整体打包上传的!!!
情况就是这么个情况,问题就是这么个问题,好吧!到这里先~
我看论坛都没有这内容的贴子,本菜鸟也是第一次发帖子(●'◡'●)
本文有附带另外论坛帖子,如果侵权或者其他违规请联系我删除!!!
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。