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

Docker构建银河麒麟arm架构redis镜像

Docker构建银河麒麟arm架构redis镜像

解决问题:银河麒麟arm架构下docker容器启动redis报错:

<jemalloc>: Unsupported system page size

分析:

​ redis在新版本中默认使用了jemalloc进行内存管理。由于jemalloc 在编译时就决定了page size的大小,而这个page size 不会由于kernel的配置而改变,因此jemalloc在某个机器上编译,然后运行在其它机器上时可能会出现问题。
由于官方arm镜像的编译环境的page size与当前运行环境的page size不一致导致报错。
解决方案:
在联网环境下使用docker自定义构建redis镜像(下面教程使用个人mac苹果电脑)

一、基础环境

docker、docker-compose安装(此步骤省略)

二、使用docker拉取银河麒麟兼容镜像

docker pull openeuler/openeuler:22.03

在这里插入图片描述

三、创建Dockerfile

FROM openeuler/openeuler:22.03# 安装依赖和 redis
RUN dnf update -y && \dnf install -y redis && \dnf clean all# 启用 redis(无密码)
EXPOSE 6379CMD ["redis-server", "--protected-mode", "no", "--bind", "0.0.0.0"]

四、构建redis镜像

docker buildx build --platform linux/arm64 --pull=false -t redis-64k --output type=docker .

在这里插入图片描述

五、redis镜像相关操作

# 1、查看镜像
docker images
# REPOSITORY            TAG               IMAGE ID       CREATED          SIZE
# redis-64           latest            c7b332d65851   22 minutes ago   1.01GB# 2、保存镜像
docker save -o redis-64k.tar redis-64k
# 3、挂载镜像
docker load -i redis-64k.tar
# 4、查看版本
docker exec -it <容器名或ID> redis-server --version

六、创建docker-compose启动Redis镜像

version: '3.8'services:redis:image: redis-64k:latestcontainer_name: lh-redisrestart: alwaysports:- "10513:6379"volumes:- "./data/redis:/data"command: redis-server --appendonly yes --requirepass "lanhai@root"environment:- TZ=Asia/Shanghai

docker-compose相关命令

# 启动
docker-compose up -d
# 停止
docker-compose down
http://www.dtcms.com/a/274577.html

相关文章:

  • Windows下基于docker desktop 使用Claude code
  • MySQL中使用group_concat遇到的问题及解决
  • 容器管理: 单机用Docker Compose,多机用Kubernetes
  • Docker高级管理--Dockerfile 镜像制作
  • 8.卷积神经网络基础
  • CSS 版本迭代历史和版本特性
  • ffmpeg-api记录
  • 8、鸿蒙Harmony Next开发:相对布局 (RelativeContainer)
  • PortsWiggerLab: Blind OS command injection with output redirection
  • 2D下的几何变换(C#实现,持续更新)
  • linux获取NTP方式
  • ubuntu22默认安装firefox使用snap安装还老打不开解决办法
  • 【Spring】拦截器详解
  • jenkins部署springboot+Docker项目
  • Playwright Python 教程:网页自动化
  • xAI发布Grok4+代码神器Grok4 Code,教你如何在国内升级订阅SuperGrok并使用到Grok4教程
  • 信号量机制
  • 【机器学习】保序回归平滑校准算法
  • 设计模式(结构型)-适配器模式
  • 深度学习入门教程(三)- 线性代数教程
  • 使用you-get命令下载视频/音频/图像
  • Primer Premier 5分子生物学引物设计软件 PCR引物设计工具
  • 【读代码】开源音乐分离工具Spleeter
  • RabbitMQ 之顺序性保障
  • Java大厂面试故事:谢飞机的互联网医疗系统技术面试(Spring Boot、MyBatis、Kafka、Spring Security、AI等)
  • c++——浅拷贝和深拷贝、浅赋值和深赋值
  • 动态组件和插槽
  • mysql 锁介绍
  • 分布式系统高可用性设计-负载均衡与容错机制深度解析
  • 2025年DevSecOps工具全景图:安全左移时代的国产化突围