[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    檢查掛載是否成功

相關文章
相關標籤/搜索