Docker 迁移 Gitea 到新的服务器

一、迁移前的准备

在新服务器上安装 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.
0 comment A文章作者 M管理员
    No Comments Yet. Be the first to share what you think