技巧3 将Docker移动到不同分区
Docker把所有与容器和镜像有关的数据都存储在一个目录下。因为它可能会存储大量不同的镜像,所以这个目录可能会迅速变大!
如果宿主机具有不同分区(这在企业Linux工作站上很常见),用户可能会更快遭遇空间限制。在这种情况下,用户会想要移动Docker所操作的目录。
问题
想要移动Docker存储数据的位置。
解决方案
停止Docker守护进程,并使用 -g
标志指定新的位置来启动。
假设想在/home/dockeruser/mydocker运行Docker。首先必须停止Docker守护进程(有关如何操作的讨论参见附录B)。
然后,执行下列命令:
$ dockerd -g /home/dockeruser/mydocker
将在这个目录中创建一组新的目录和文件。这些目录是Docker内部使用的,对其进行操作风险自担(因为我们已经尝过滋味了!)。
请注意,这个命令看起来像是把容器和镜像从之前的Docker守护进程清除了。不用担心。如果杀掉刚才运行的Docker进程,并重启Docker服务,Docker客户端就会指回它原来的位置,容器和镜像也将回归。如果想让这个移动永久有效,需要对宿主机系统的启动进程进行相应配置。
讨论
除了这个明显的用例(在空间有限的磁盘上回收空间),如果你想要对镜像和容器进行严格分区,也可以用到这个技巧。例如,如果你有权访问多个不同归属的私有Docker注册中心,这将确保你不会意外地把私有数据提供给错误的对象。