[HACK] docker runtime 挂载宿主机目录

网上看到的不少所谓的挂载都是容器建立时期的挂载,并且参数都不清不楚,整理以下(--name别名本身加):linux

docker run -v /src/path:/dest/path:rw ${IMAGE} ${ENTRY_POINT args}

以上方法是不支持已经起来的运行时容器的,run表示create+start,是建立新容器。docker

docker不支持runtime的挂载其实有点不讲道理,这种需求仍是有的,并且实现并不难,大不了重启容器。json

一种hack方法参考:https://stackoverflow.com/questions/28302178/how-can-i-add-a-volume-to-an-existing-docker-container#answer-53516263缓存

思路是修改 config.v2.json 元信息,下面停掉整个docker服务是防止配置缓存一类的干扰。部分旧的linux,systemctl请自行替换成service。code

 

步骤以下:blog

1. docker stop $container_idget

2. systemctl stop dockerit

3. 修改docker container宿主机本地目录下的config.v2.json中的 MountPoints项,模板参考SO回答里的,或者参考你本身挂载的其余VOLUMES目录。io

4. systemctl start docker模板

5. docker start $container_id (这一步不必定是必须的,start docker会自动拉起容器)

6. docker exec -it $container_id ls $mount_path    检查挂载是否成功

相关文章
相关标签/搜索