前言
对于这个问题,我首先是查阅wekan的Wiki,果然在Wiki上找到了Move Docker containers to other computer,但是写的不够详细,只是给出了docker官方文档的export和import文档的链接,只有下图OLD INFO后面的内容。
经过自己一番摸索,没能搞定,于是给wekan提了个issueHow to move wekan to other computer by docker? #3758😂,在wekan作者xet7的帮助下解决了这个问题。
同时xet7大佬也补全了Move Docker containers to other computer的文档,于是就有了OLD INFO上面的内容。
解决过程
自己尝试
一开始于是我按照docke import和export的官方文档和搜索的相关文章进行操作的,还是不行,操作步骤如下:
Here’s how I do it:
- Connect to server A
docker export wekan-app > wekan-app.tar
docker export wekan-db > wekan-db.tar
- Connect to server B
docker import - wekanteam/wekan < wekan-app.tar
docker import - mongo < wekan-db.tar
git clone https://github.com/wekan/wekan
vim docker-compose.yml
- Modify wekan image to wekanteam/wekan and wekandb image to mongo
docker-compose up -d
Error is as follows:wekan-app ... error ERROR: for wekan-app Cannot create container for service wekan: No command specified ERROR: for wekan Cannot create container for service wekan: No command specified ERROR: Encountered errors while bringing up the project. ```
提issue
实在解决不了,而且本身Move Docker containers to other computer写得不够详细,于是给wekan提了个issueHow to move wekan to other computer by docker? #3758。
wekan的作者xet7大佬回答非常迅速,我提问9分钟就给我答复了。
我按照他的说的进行了操作,还是不行,于此同时我通过5 ways to move Docker container to another host
也了解到:
export和import容器工具的一个缺点是,它不导出容器的端口和变量,也不导出包含容器的底层数据。
当尝试在另一台服务器中加载容器时,这可能会导致错误。在这种情况下,我们选择Docker镜像迁移来将容器从一台服务器迁移到另一台服务器。 也就是5 ways中的第二种方法。
镜像迁移主要用到docker的commit、save、load
这几个命令,我按照尝试后依旧报同样的错误。
wekan作者补全docker迁移wekan的文档
我看了下5 ways to move Docker container to another host
的第四种方法,因涉及到数据卷,在不是很熟悉wekan的情况下,我没有尝试,。
正当我准备尝试的第五种方法(5. Move entire Docker containers)时,xet7大佬又回复了我😄。
他补全Move Docker containers to other computer的内容,该内容正是我要尝试的第五种方法 ,而且写得很详细。
于是我按照他写的步骤操作了一篇,果然成功了。
该方法是将所有容器迁移到另一台服务器,它是将整个docker目录/var/lib/docker
拷贝另一台服务器,因此该方法需要注意:
- 保留文件夹的权限和所有权。
- 迁移前停止Docker服务。
- 验证两台服务器中的Docker版本是否兼容。
- 迁移前后验证容器列表和功能。
- 环境变量和其他配置文件的路径。
由于该方法是将旧服务器的docker所有容器替换到新服务器,因此新服务器的容器会被替换掉,因此操作前,需要备份新服务器上原有的/var/lib/docker
目录。
所以如果新服务器上的docker有用于生产环境的容器,最好不要使用此方法。
如果你会更方便的方法,欢迎留言!
支持🤟
- 🎸 [关注❤️我吧],我会持续更新的。
- 🎸 [点个👍赞吧],码字不易麻烦了。