从零开始:在 MacOS 中通过 Docker 部署跨平台 Redis 服务(支持 Ubuntu 迁移)

发布于:2025-02-26 ⋅ 阅读:(16) ⋅ 点赞:(0)

前言

在开发和生产环境中,Docker 已成为部署服务的标准工具。但对于使用 MacOS(尤其是 Apple Silicon 架构)的开发者,将本地构建的镜像迁移到 x86-64 架构的 Ubuntu 服务器时,常会遇到平台兼容性问题。本文将提供一套 从镜像构建、跨平台适配、数据持久化到服务迁移 的完整解决方案,助你轻松实现全流程部署。


一、环境准备

1. 安装 Docker Desktop

  • 访问 Docker 官网下载并安装 Docker Desktop。
  • 启动 Docker,确认状态栏显示 Running

2. 启用 Docker Buildx

Buildx 是 Docker 的多平台构建工具,执行以下命令启用:

docker buildx create --use

二、构建跨平台 Redis 镜像

1. 构建多平台镜像

docker buildx build --platform linux/amd64 -t redis:latest .
  • -platform linux/amd64:强制构建 x86-64 架构镜像,确保与 Ubuntu 服务器兼容。

2. 直接构建镜像

docker pull --platform linux/amd64 redis:latest
  • 以上两种方法二选一即可,如果使用第2种,则不需要进行启用Docker Buildx

三、镜像打包与迁移到 Ubuntu

1. 导出镜像为独立文件

在 MacOS 终端中,使用 docker save 命令将镜像打包成一个压缩文件:

# 语法:docker save -o <输出文件名> <镜像名>:<标签>
docker save -o ubuntu-redis.tar redis:lates

这会生成 ubuntu-redis.tar 文件,包含镜像的所有内容(包括 Ubuntu 系统、Redis 和配置)。

2. 传输到 Ubuntu 服务器

# 示例:通过 scp 传输到 Ubuntu 主机的 /home/user 目录
scp ubuntu-redis.tar user@ubuntu-ip:/home/user
  • 或者使用类似于Xshell、Transmit连接服务器的工具进行镜像文件上传

3. 在 Ubuntu 中加载镜像

在 Ubuntu 终端中,使用 docker load 加载镜像:

docker load -i ubuntu-redis.tar

加载后可通过 docker images 查看镜像是否已存在。

4. 运行容器(Ubuntu)

  • 创建宿主数据存储目录和配置文件

# 在宿主机(Mac/Ubuntu)上创建持久化目录和配置文件
mkdir -p ~/redis/data
touch ~/redis/redis.conf

  • 编写 Redis 配置文件

编辑 ~/redis/redis.conf,写入以下内容:

bind 0.0.0.0
port 6379
appendonly yes
dir /data
  • bind 0.0.0.0:允许所有外部 IP 连接。
  • appendonly yes:启用 AOF 持久化。
  • dir /data:指定数据存储目录(需与容器内挂载路径一致)。

执行以下命令启动容器

docker run -d \\
  --name my-redis \\
  -p 6379:6379 \\
  -v ~/redis/data:/data \\
  -v ~/redis/redis.conf:/etc/redis/redis.conf \\
  redis \\
  redis-server /etc/redis/redis.conf

参数解析

参数 作用
-d 后台运行容器
--name my-redis 容器命名
-p 6379:6379 端口映射(宿主机端口:容器端口)
-v ~/redis/data:/data 挂载数据目录(宿主机目录:容器目录)
-v ~/redis/redis.conf:/etc/redis/redis.conf 挂载配置文件
ubuntu-redis 镜像名称
redis-server /etc/redis/redis.conf 启动 Redis 并加载配置文件


网站公告

今日签到

点亮在社区的每一天
去签到