介绍
容器中的挂载点在挂载了宿主机上的某个挂载目录之后,有时候会需要更改挂载目录,但是通过命令却无法直接更改容器的挂载目录,这种情况下该怎么做?下面将简单介绍网上流行的3种方式来实现更改容器的挂载目录。
流程
方法一:直接修改容器的配置文件(以Linux系统为例)
在/var/lib/docker/containers/容器ID/config.v2.json配置文件中找到MountPoints字段,可以看到里面的每一个json对象都代表一个挂载点,Source是宿主机的挂载目录,Destination是容器的挂载点,而我们需要修改的就是Source了,因为我们的目的就是为了修改挂载目录嘛。修改完毕之后保存退出,通过systemctl restart docker.service重启服务并启动容器即可。
方法二:直接将容器提交为一个新的镜像
使用docker commit命令将指定容器提交为一个新的镜像,并使用docker run -v重新指定一个挂载目录和挂载点的映射即可。
方法三:直接将容器导出成一个镜像压缩包,并重新将镜像压缩包导入docker环境为镜像
使用docker export 容器ID(或容器名)>任意名字.tar 命令将容器导出为镜像压缩包,并使用命令cat 任意名字.tar|docker import - 镜像名即可将镜像压缩包导入到docker环境为镜像,最后使用docker run -v重新指定一个挂载目录和挂载点的映射即可。
总结
比较值得注意和推荐的还是第一种方式,即直接修改配置文件,这种方式最简单直接。方法二和方法三实际上并没有太大的差别,都是通过将容器导出成镜像,然后再使用docker run -v重新指定挂载目录和挂载点的映射,可以说区别仅仅在于命令,而过程实际上没有区别。