起因
- 在很多情況下,在啟動docker時會用-v參數添加映射卷,但是很多情況是,在容器里面安裝了很多模塊之后,才發現漏添加某些卷,這時就需要添加新卷的辦法
解決方案
方案1
- 把容器保存為鏡像,然后用-v參數添加新的卷。這個方式比較麻煩,建議不用
方案2
停止容器,直接修改容器配置文件
- 停止容器
# docker stop 容器名稱
- 停止docker服務
如果不停止服務的話,修改配置文件會被docker重新覆蓋,無法使文件生效,如果手足夠快也可以,但是幾乎是不可能的
# systemctl stop docker
- 修改配置文件
配置文件在/var/lib/docker/containers目錄,要注意檢查自己想修改容器的ID,與子目錄的名稱是匹配的,要修改兩個配置文件,如下
# vi /var/lib/docker/containers/容器ID/config.v2.json
"MountPoints": {
"主機路徑": {
"Source": "主機路徑",
"Destination": "容器路徑",
"RW": true,
"Name": "",
"Driver": "",
"Type": "bind",
"Propagation": "rprivate",
"Spec": {
"Type": "bind",
"Source": "主機路徑",
"Target": "容器路徑"
}
}
}
# vi /var/lib/docker/containers/容器ID/hostconfig.json
"Binds": [
"主機路徑:容器路徑"
],
要注意標題符號呀,切記切記
- 重啟docker服務
# systemctl start docker
- 啟動容器
# docker start 容器id