迁移 Rancher 1 内部数据库至外部数据库
前言
近期公司要从阿里云青岛节点迁移到张家口节点,张家口节点早几个月购买了几台服务器,并搭建和部署了rancher
环境,在迁移过程中,发现新环境rancher
采用的是内置数据库方式,为了方便后期维护,于是将内部数据库迁移至外部数据库,发文记录下具体步骤。
步骤
查看容器内部mysql
版本
进入rancher
容器,查看容器内部mysql
版本
进入容器
1 | docker exec -it <container_name_of_original_server> /bin/bash |
查看内部mysql
版本
1 | mysql -v |
停止正在运行的rancher
容器
1 | docker stop <container_name_of_original_server> |
复制容器数据目录
将数据库文件复制到服务器容器之外。
1 | docker cp <container_name_of_original_server>:/var/lib/mysql <path on host> |
创建并启动mysql
镜像
创建并启动mysql
镜像,并指定数据文件路径为上一步复制出来的文件目录。
1 | docker run --name mysql -v <path on host>:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<MYSQL_ROOT_PASSWORD> mysql:<容器内部MYSQL版本> |
创建新的数据库和用户
1 |
|
外部数据库方式创建rancher
镜像
1 | docker run -d --restart=unless-stopped -p 8080:8080 rancher/server \ |
注:
rancher
会自动建表。
导入数据到使用的外部数据库
停止运行的rancher
容器,连接刚才创建的mysql
数据库,用户名/密码:cattle/cattle
,将数据导入至使用的外部数据库中。
注意:保留
databasechangelog
和databasechangeloglock
表和表内数据。否则rancher
还会执行建表操作。
启动rancher
容器,迁移完成
1 | docker start <container_name_of_original_server> |
迁移 Rancher 1 内部数据库至外部数据库