Docker容器在重新启动Docker服务或重新启动后丢失文件
我服务器的主驱动器快满了。因此,我将Docker容器在重新启动Docker服务或重新启动后丢失文件,docker,permissions,rsync,Docker,Permissions,Rsync,我服务器的主驱动器快满了。因此,我将/var/lib/docker目录移动到第二个驱动器位置/media/my username/sec drive/docker sudo -s # enter root mode service docker stop rsync -aXS /media/my-username/sec-drive/docker /var/lib/docker rm -rf /var/lib/docker ln -s /media/my-username/sec-drive/d
/var/lib/docker
目录移动到第二个驱动器位置/media/my username/sec drive/docker
sudo -s # enter root mode
service docker stop
rsync -aXS /media/my-username/sec-drive/docker /var/lib/docker
rm -rf /var/lib/docker
ln -s /media/my-username/sec-drive/docker /var/lib/docker
serivce docker start
然后使用dockercompose-d
所有容器都可以正常工作
但当我重新启动或重新启动docker服务时,我的一个容器丢失了一堆文件(其他容器工作正常)。其中一个文件是/opt/myproj/mxnet/
use local mxnet
RuntimeError: Cannot find the files.
List of candidates:
/opt/myproj/mxnet/libmxnet.so
/opt/myproj/mxnet/libmxnet.so
/opt/myproj/mxnet/../../build/libmxnet.so
/usr/local/nvidia/lib/libmxnet.so
/usr/local/nvidia/lib64/libmxnet.so
../../../libmxnet.so
那些文件似乎是随机丢失的。mxnet文件夹中的\uuuu init\uuuuuuuuuuupy
丢失,但\uuuuuu init\uuuuuuuuuuupyc
保持正常。那真是太好了
然后我尝试删除图像和容器并再次导入,结果是相同的
更新:
此错误再次发生在另一台服务器上。但这次我重新安装了系统,没有将docker移动到另一个驱动器。似乎这与docker目录位置无关您必须指示docker守护进程更改文件夹 在
docker.service
中,您应该添加一个参数(-g):
这里有一些参考资料:
如果这种情况发生在我身上,我可能会删除
/var/lib/docker
两个副本中的所有内容,然后重新开始,根据需要重新运行docker build
和/或docker pull
,以取回我的图像。@DavidMaze我已尝试删除/var/lib/docker和docker load
图像下的所有文件,但没有修复。thx 4 Reply已经使用了软链接ln-s/media/my username/sec drive/docker/var/lib/docker
。你是说这就是问题的原因吗?我将尝试您的解决方案并再次发表评论。非常感谢。我记得我用过软链接。这不是问题所在。对我来说,它是传递给demon的正确参数。这个错误再次发生在另一台服务器上。但这次我重新安装了系统,没有将docker移动到另一个驱动器。似乎它与docker目录位置无关。
FROM:
ExecStart=/usr/bin/docker daemon
TO:
ExecStart=/usr/bin/docker daemon -g /new/path/docker