Docker容器修改映射路径

Docker容器修改映射路径

背景

容器已安装运行,后续想要更改映射目录,但又不想删除容器重新运行。

注: 切记一定先关闭docker(已测试,单独关闭容器,或者关闭容器,修改完成后再重启docker都会导致修改不生效)。

以下以修改mongodb容器为例。

查看容器id

1
docker ps

查看容器id

根据容器id查看容器在宿主机的目录

如果知道具体的容器,不需查看容器id,直接执行如下:

1
docker inspect mongodb

查看容器在宿主机的目录

根据结果可以看到容器id为95ccc7be...,接着往下可以看到容器在宿主机的映射目录/var/lib/docker/containers/95ccc7be33f964...

修改配置文件中的映射目录

  1. 进入上步查询到的目录,查看内容列表。

    1
    2
    3
    cd /var/lib/docker/containers/95ccc7be33f96443c98c4c4f0b57d8631b2dab9f6e0903fc5fc8ba5f4bf45612

    ll或者ls

    可以查看到config.v2.jsonhostconfig.json两个文件,也是本次需要修改的两个配置文件,切记备份再修改。

    查看配置文件

  2. 修改config.v2.json文件

    1
    vim config.v2.json

    可以看到文件内容没有格式,故需在查看模式下格式化该文件内容。

    1
    :%!python -m json.tool

    找到映射目录模块,MountPoints处即为映射目录,映射内容如下

    修改config.v2

    根据标记的内容,根据所需修改对应路径(宿主机目录,还是容器内部路径)

  3. 修改hostconfig.json文件

    执行如上命令,可查看内容如下。

    修改hostconfig

    修改映射目录和config.v2.json目录一致。

重启docker及容器

注: 重启备份文件内容

因为我是修改了对应的容器数据目录,故先把容器待映射目录数据拷贝出来。

1
docker cp mongodb:/data/db /etc/local/docker/mongodb/data

重启即可,重新查看修改后目录。

修改成功


Docker容器修改映射路径
http://www.muzili.ren/2022/06/11/Docker容器修改映射路径/
作者
jievhaha
发布于
2022年6月11日
许可协议