正在运行的容器目录映射到宿主机的讲解

不想重新 run 容器,但是又必须改目录映射,怎么办?

容器内的目录映射到宿主机上有两种情况,这两种情况无论是哪一种都需要重启docker服务方可生效。

容器目录映射是有两个(hostconfig.json、config.v2.json)文件决定的,根据docker ID找到这两个文件,这两个文件一般在目录 /var/lib/docker/containers/以docker ID 开头的一串数字/  下

第一种:改变容器已经映射目录的名字。

假如,容器里的 /opt 已经映射到宿主机上 /data,改变映射 /data 为 /test

1、在宿主机上创建你想改变的目录 /test

2、停止容器把宿主机上 /data 里的数据拷贝到 /test下

3、修改 hostconfig.json 文件只需要修改一处即可,(/data:/opt 改成 /test:opt)

4、修改 config.v2.json 文件,需修改两处

5、以上两个文件修改完成后,重启 docker 服务,启动容器,使用 docker inspect ID 可查看已经改变的映射目录。

第二种:添加容器内目录映射到宿主机上。

增加目录映射,就是在两个(hostconfig.json、config.v2.json)文件里增加两段文字,例如增加容器 /opt 映射到宿主机 /data 目录,有一点 一定 一定 一定 要记住,如果你映射的是 jar 包运行目录,要把容器里的 jar 包先拷贝的容器外的映射目录,不然你 jar 包可能启动不了。

1、在 hostconfig.json 文件里添加内容

2、在 config.v2.json 文件添加内容

"/opt":{"Source":"/data","Destination":"/opt","RW":true,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":{"Type":"bind","Source":"/data","Target":"/opt"},"SkipMountpointCreation":false},

3、重启 docker 服务,重启容器

参考文章:https://www.cnblogs.com/linyouyi/p/10715408.html

参考文章:https://blog.csdn.net/zdegrh_2/article/details/102790249

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值