我的服务器的主驱动器快满了。因此,我使用{p>将/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
然后我使用docker-compose up -d
启动我的所有docker容器
所有容器都可以正常工作。
但是当我重新启动或重新启动docker服务时,我的一个容器丢失了一堆文件(其他容器正常工作)。这些文件之一是libmxnet.so
下的/opt/myproj/mxnet/
(filemode:777)
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文件夹中,__init__.py
丢失了,但__init__.pyc
仍然正常。真的很有线。
然后,我尝试删除图像和容器并再次导入,只是得出相同的结果。
更新:
此错误再次在另一台服务器上发生。但是这次,我已经重新安装了系统,也没有将docker移至另一个驱动器。似乎与docker目录位置无关
答案 0 :(得分:0)
您必须指示docker守护程序更改文件夹。
在您的docker.service
中,应添加参数(-g):
FROM:
ExecStart=/usr/bin/docker daemon
TO:
ExecStart=/usr/bin/docker daemon -g /new/path/docker
此处有一些参考文献:
https://www.rb-associates.co.uk/blog/move-var-lib-docker-to-another-directory/