目标:
在阿里云通过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