文章目录
- 概述
- 步骤
- 停止容器运行
- 修改hostconfig.json配置文件
- 修改config.v2.son配置文件
- 说明:
- 重启docker服务
- 启动容器
- 优缺点
- 个人建议
概述
今天启动通过docker run nignx 生成容器后, 突然想对容器得目录做一个挂载。把容器中的目录挂载到外面。容器运行后,需要再绑定卷,没有相应的命令,最后只能查询了好多文档资料,发现只能手动修改配置文件得方法才可以。 (如果又其他得办法得话,欢迎指出哈)
步骤
停止容器运行
docker stop 容器名 或 容器ID
注意: 必须先停止容器运行
修改hostconfig.json配置文件
vim /var/lib/docker/containers/容器ID/hostconfig.json
如下图:
“binds:[”/xx/xx:/xxx","/xxx/xxx"]
按照上面格式添加绑定卷(建议先移出来在修改,记得备份哦):宿主机目录:docker容器内目录
修改config.v2.son配置文件
config.v2.json 文件比较复杂,(建议先移出来在修改,记得备份哦),文件内容是 json 格式,格式化后,按照下面格式 添加绑定卷:
说明:
"【容器内目录】": {
"Source": "【宿主机目录】",
"Destination": "【容器内目录】",
"RW": true,
"Name": "",
"Driver": "",
"Type": "bind",
"Propagation": "rprivate",
"Spec": {
"Type": "bind",
"Source": "【宿主机目录】",
"Target": "【容器内目录】"
},
"SkipMountpointCreation": false
}
重启docker服务
**注意:**必须重启,如果不重启就启动容器,上面修改的配置文件会恢复原样
systemctl restart docker
启动容器
docker start 容器名 或 容器ID
优缺点
优点:没有副作用,操作简单。
缺点:是需要重启整个docker服务,如果在同一个宿主机上运行着多个容器服务的话,就会影响其他容器服务。
个人建议
修改配置文件太罗嗦了。还是直接删除容器,重新创建一个容器吧
如果容器内有重要数据,建议先移出来备份下:
可以用docker cp ff3fc75eb254:/etc/nginx /home/dockerData/nginx/ (docker cp容器id:/容器目录 /宿主机目录)
在进行-v 挂载
个人觉得:挂载得nginx配置文件得时候时候,如果 -v 容器外存在得目录。那么就会已容器外得目录为准,把容器外得目录覆盖到容器内去,如果容器外目录不存在,。那么就会已容器内为准。把容器内得文件复制到容器外去欢迎求认证