因为某些原因,需要迁移docker容器
说明
服务器241.com: 旧服务器,旧的docker 需要 迁移 的容器在这里
服务器 87.com: 新服务器,新docker
可以从第四步开始看
一、旧服务器导出容器
当时的旧容器是这样的
mkdir -p /data/zbox && docker run -d -p 801:80 -p 13306:3306 \
-e USER="root" -e PASSWD="root123" \
-e BIND_ADDRESS="false" \
-v /opt/zbox/:/opt/zbox/ \
--privileged=true \
--name zentao-server \
--restart=always \
idoop/zentao:latest
开始导出
登录旧服务器操作
[root@localhost upload]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfc2f7f30fdc idoop/zentao:latest "docker-entrypoint" 3 months ago Up 3 weeks (healthy) 0.0.0.0:801->80/tcp, 0.0.0.0:13306->3306/tcp zentao-server
[root@localhost upload]#
[root@localhost upload]# ## cf 为容器id
[root@localhost upload]# docker stop cf
cf
[root@localhost upload]# ## cf 为容器id
[root@localhost upload]# docker commit cf zentao
sha256:7f24aa01124b11c63cb56016f1e3331d9f71679029af67971d031548cfc29666
[root@localhost upload]#
[root@localhost upload]# ## 文件名称随意
[root@localhost upload]# docker save zentao > /tmp/zentao.tar
[root@localhost upload]#
[root@localhost upload]#
[root@localhost upload]# cd /tmp/
[root@localhost tmp]# ll ## 查看文件
total 205380
-rw-r--r-- 1 root root 210304512 Dec 8 15:28 zentao.tar
dr-xr-xr-x. 20 root root 4096 Sep 4 09:57 ..
drwxrwxrwt. 9 root root 279 Dec 8 15:29 .
[root@localhost tmp]#
二.复制新文件到服务器
[root@localhost opt]# ## 从旧服务器复制到新服务器
[root@localhost opt]# scp root@192.168.199.241:/tmp/zentao.tar /tmp/
root@192.168.199.241's password: #### 输入旧服务器的密码
zentao.tar 100% 201MB 11.1MB/s 00:18
[root@localhost opt]# # 查看 复制 结果
[root@localhost opt]# cd /tmp/
[root@localhost tmp]# ll
总用量 205376
drwx------ 3 root root 16 9月 2 10:01 systemd-private-b91f61b020a74e08b736001c3e6419e4-cups.service-6Fxsu5
drwx------ 3 root root 16 11月 17 15:25 systemd-private-b91f61b020a74e08b736001c3e6419e4-nginx.service-YZMGnl
-rw-r--r-- 1 root root 210304512 12月 8 15:30 zentao.tar
[root@localhost tmp]#
因为旧服务器的数据放在 /opt/zbox里
导入之前 要把旧的文件复制过来
[root@localhost zbox]# pwd
/opt/zbox
[root@localhost zbox]#
[root@localhost zbox]# scp -r /opt/zbox/ root@192.168.199.87:/opt/zbox
这个可能比较慢
三、导入
[root@localhost opt]#
[root@localhost opt]# ## 把压缩包导入为镜像
[root@localhost tmp]# docker load < zentao.tar
5883de9495a3: Loading layer [==================================================>] 36.88 MB/36.88 MB
Loaded image: zentao:latest [> ] 393.2 kB/36.88 MB
[root@localhost tmp]#
[root@localhost tmp]#
[root@localhost tmp]#
[root@localhost tmp]#
[root@localhost tmp]# ## 查看docker 镜像
[root@localhost tmp]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zentao latest 7f24aa01124b 4 minutes ago 207 MB
centos tomcat8 c3eb3994a063 4 years ago 913.3 MB
centos jdk8 10b02dc2ec1a 4 years ago 860.7 MB
docker.io/centos latest 980e0e4c79ec 4 years ago 196.7 MB
docker.io/redis latest 0d1cbfaa41da 4 years ago 185 MB
[root@localhost tmp]#
[root@localhost tmp]#
[root@localhost tmp]#
[root@localhost tmp]# docker load < zentao.tar
5883de9495a3: Loading layer [==================================================>] 36.88 MB/36.88 MB
Loaded image: zentao:latest [> ] 393.2 kB/36.88 MB
[root@localhost tmp]#
[root@localhost tmp]#
运行
[root@localhost tmp]# ## 运行
[root@localhost tmp]# docker run zentao
这就完了吗,没 有,常规的容器就这么迁移就行了吧,可能 ,但是这个docker 迁移 了不知道为什么 启动不了,
算了笨办法 来做
四、重新开始
新服务器运行新的禅道容器
mkdir -p /data/zbox2 && docker run -d -p 802:80 -p 23302:3306 \
-e USER="root" -e PASSWD="root123" \
-e BIND_ADDRESS="false" \
-v /opt/zbox2/:/opt/zbox/ \
--privileged=true \
--name zentao-server2 \
--restart=always \
idoop/zentao:latest
去旧的服务器把sql导出 来
#进容器
docker exec -it zentao-server bash
## 因为 容器没有配置环境变量,需要 进mysql 目录
cd /opt/zbox/run/mysql/
# 使用dump导出
./mysqldump -u root -p zentao > /opt/zbox/zentao.sql
## 打开mysql root用户的远程 连接
# 这个mysql默认不支持root远程 连接
#2进入 mysql
mysql -u root -p
#3输入密码
# 4更新root权限
grant all on *.* to 'root'@'%' identified by 'root123';
grant all on *.* to 'root'@'%' identified by '123456';
flush privileges;
再导入 到新的禅道
导入方法千千万,我用的是navicat ,不逼逼 了
数据回来 了
但是图片 没有
图片文件的位置
[root@localhost 1]#
[root@localhost 1]#
[root@localhost 1]#
[root@localhost 1]# pwd
/opt/zbox/app/zentao/www/data/upload/1
[root@localhost 1]# ll
total 12
drwxrwxrwx 2 65534 65534 4096 Sep 10 15:17 202009
drwxrwxrwx 2 65534 65534 4096 Nov 30 16:57 202011
drwxrwxrwx 2 65534 65534 4096 Dec 8 10:00 202012
drwxrwxrwx 2 65534 65534 72 Oct 15 11:42 202010
drwxrwxrwx 6 65534 65534 62 Dec 1 09:17 .
drwxrwxrwx 3 zyl zyl 33 Sep 4 10:06 ..
[root@localhost 1]#
[root@localhost 1]#
[root@localhost 1]#
把这些东西复制 到新容器的 对应 目录 就行了
总结
新建一个容器
复制 sql 文件
复制图片 文件