网上看到的很多所谓的挂载都是容器创建时期的挂载,而且参数都不清不楚,整理如下(--name别名自己加):
docker run -v /src/path:/dest/path:rw ${IMAGE} ${ENTRY_POINT args}
以上方法是不支持已经起来的运行时容器的,run表示create+start,是创建新容器。
docker不支持runtime的挂载其实有点不讲道理,这种需求还是有的,而且实现并不难,大不了重启容器。
思路是修改 config.v2.json 元信息,下面停掉整个docker服务是防止配置缓存一类的干扰。部分旧的linux,systemctl请自行替换成service。
步骤如下:
1. docker stop $container_id
2. systemctl stop docker
3. 修改docker container宿主机本地目录下的config.v2.json中的 MountPoints项,模板参考SO回答里的,或者参考你自己挂载的其他VOLUMES目录。
4. systemctl start docker
5. docker start $container_id (这一步不一定是必须的,start docker会自动拉起容器)
6. docker exec -it $container_id ls $mount_path 检查挂载是否成功