一、迁移前的准备
在新服务器上安装 Docker 和 Docker Compose:
# 安装 Docker
curl -fsSL https://get.docker.com | sh
# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
二、备份现有的 Gitea 数据
在旧服务器上备份 Gitea 数据(假设容器名 gitea
,数据挂载在 /mnt/gitea
):
# 停止 Gitea 容器
docker stop gitea
# 备份数据卷
mkdir ~/gitea_backup
docker cp gitea:/data ~/gitea_backup/
# 压缩备份数据
tar -czf ~/gitea_backup.tar.gz ~/gitea_backup
三、导出 Docker 镜像
导出 Gitea 镜像:
# 查看镜像 ID
docker images
# 导出镜像
docker save -o ~/gitea_image.tar <gitea_image_id>
四、迁移到新服务器
将备份数据和镜像传输到新服务器:
# 使用 scp 传输(替换相应 IP 和路径)
scp ~/gitea_backup.tar.gz <new_server_ip>:/path/to/
scp ~/gitea_image.tar <new_server_ip>:/path/to/
五、在新服务器上恢复 Gitea
加载镜像并创建运行环境:
# 加载镜像
docker load -i /path/to/gitea_image.tar
# 创建数据目录
mkdir -p /mnt/gitea
# 解压备份数据
tar -xzf /path/to/gitea_backup.tar.gz -C ~/
mv ~/gitea_backup/data/* /mnt/gitea/
# 创建 docker-compose.yml
cat <<EOF > ~/docker-compose.yml
version: '3'
services:
gitea:
image: <your_gitea_image>:<tag>
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- /mnt/gitea:/data
ports:
- "3000:3000"
- "22:22"
restart: always
EOF
启动 Gitea:
cd ~
docker-compose up -d
六、验证迁移结果
在浏览器访问新服务器的 IP 地址(如 http://<new_server_ip>:3000
),确认 Gitea 正常运行。
七、结尾
通过以上步骤,您可以成功地将 Gitea 从旧服务器迁移到新服务器。在整个迁移过程中,确保备份数据的完整性和安全性至关重要。根据需要,您还可以调整 docker-compose.yml
文件中的配置参数,以优化 Gitea 的性能和可用性。
如果使用的MySQL是容器外的,记得给数据库上一个可以访问的权限,或开放3306端口。
- All rights reserved.
- No part of this website, including text and images, may be reproduced, modified, distributed, or transmitted in any form or by any means, without the prior written permission of the author.
- Unauthorized commercial use is strictly prohibited.
- Unauthorized personal use is strictly prohibited.