Docker 移植镜像到另一台机器,启动运行容器后,文件丢失(已解决)

目标:

在阿里云通过docker-compose up 启动的的服务,现在将 webdkp-master_webserver 这个镜像移动到另一台服务器(未联网)启动运行。

镜像 :webdkp-master_webserver   latest              dca05b20a30a        11 hours ago        746MB

容器 : 7f1893d2ece9        webdkp-master_webserver   "/usr/sbin/apache2ct…"   10 hours ago        Up 10 hours         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   webserver 

操作步骤;

1、使用 docker save -o webdkp-master_webserver.tar webdkp-master_webserver:latest 打包镜像,

2、然后复制到另一台服务器, docker load -i webdkp-master_webserver.tar,将镜像导入。

3、启动 docker run -d -p 80:80 --name webserver webdkp-master_webserver,启动成功。

问题:

然后去浏览器访问,发现报错:URL was not found on this server。

问题定位:

1、进入容器:docker exec -it container ID /bin/bahs ,发现目录确实没有页面文件

 

2、到目标服务器(阿里云)上,进入容器,发现文件都是确实存在的

原因 :

 待解决。。。。。。。

1.是不是 save/load 问题,之后换成 export/import 也还是相同情况,又使用 docker commit container ID ,然后再对新的 镜像 save/load 还是发现文件丢失了。

---------------------------------------------------------------------------------------------------- 分割线 ----------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------           

已解决  ( 2021-3-17 ) -------------------------------------

原因:

构建的时候 使用的docker-compose up 构建的,构建的具体步骤没有仔细阅读,现在想想应该是构建的时候直接挂载的外面目录。

所以在 load 之后的镜像镜像里面也是没有的。

解决方法:

将挂载的目录文件也拷贝到新主机。 重新启动容器,使用: -itv 【文件目录】 :【挂载docker容器中目录】

命令: 

docker run -d -p 80:80 -p 443:443 -itv /Users/jjshen/itools/dockersoft/webdkp/webdkp-master/www:/var/www/html --name webserver webdkp-master_webserver

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值