网上看到的不少所谓的挂载都是容器建立时期的挂载,并且参数都不清不楚,整理以下(--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 检查挂载是否成功