通常来说如果要增加挂载目录的话要重新创建容器,如果不想重新创建的话就需要修改配置文件。
本文以为nginx增加日志目录(/var/log/nginx)挂载到宿主机为例,介绍如何为已启动的docker容器增加挂载目录。
需要注意的是该方法需要重启docker服务
步骤
查询出容器的id
docker ps -a
得到nginx的容器id的前缀为 106236d2bab0
关闭容器
docker stop 106236d2bab0
根据容器id前往docker容器配置目录
cd /var/lib/docker/containers/106236d2bab0······
这里我们将
nginx容器中的/var/log/nginx挂载到宿主机的 /root/nginx_log上。
我们需要修改 config.v2.json 和 hostconfig.json 这两个文件。
config.v2.json
在config.v2.json的MountPoints中添加以下配置:
{ ...
"MountPoints": {
"/var/log/nginx": {
"Source": "/root/nginx_log",
"Destination": "/var/log/nginx",
"RW": true,
"Name": "",
"Driver": "",
"Type": "bind",
"Propagation": "rprivate",
"Spec": {
"Type": "bind",
"Source": "/root/nginx_log",
"Target": "/var/log/nginx"
},
"SkipMountpointCreation": false
}
},
...
}
在hostconfig.json的Binds中添加一条映射
hostconfig.json
{
"Binds": [
"/root/nginx_log:/var/log/nginx"
],
......
}
重启docker服务
注意必须要重启docker服务,否则docker的守护进程会将你修改的配置还原
systemctl restart docker # 重启docker服务
docker start 106236d2bab0 # 启动nginx服务
启动后nginx的日志目录成功挂载到宿主机中: