文章目录

  • 概述
  • 步骤
  • 停止容器运行
  • 修改hostconfig.json配置文件
  • 修改config.v2.son配置文件
  • 说明:
  • 重启docker服务
  • 启动容器
  • 优缺点
  • 个人建议


概述

今天启动通过docker run nignx 生成容器后, 突然想对容器得目录做一个挂载。把容器中的目录挂载到外面。容器运行后,需要再绑定卷,没有相应的命令,最后只能查询了好多文档资料,发现只能手动修改配置文件得方法才可以。 (如果又其他得办法得话,欢迎指出哈)

步骤

停止容器运行

docker stop 容器名 或 容器ID

注意: 必须先停止容器运行

修改hostconfig.json配置文件

vim /var/lib/docker/containers/容器ID/hostconfig.json

如下图:

docker es 修改环境变量 docker修改配置文件_重启

“binds:[”/xx/xx:/xxx","/xxx/xxx"]

按照上面格式添加绑定卷(建议先移出来在修改,记得备份哦):宿主机目录:docker容器内目录

修改config.v2.son配置文件

config.v2.json 文件比较复杂,(建议先移出来在修改,记得备份哦),文件内容是 json 格式,格式化后,按照下面格式 添加绑定卷

docker es 修改环境变量 docker修改配置文件_重启_02

说明:

"【容器内目录】": {
	"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 容器外存在得目录。那么就会已容器外得目录为准,把容器外得目录覆盖到容器内去,如果容器外目录不存在,。那么就会已容器内为准。把容器内得文件复制到容器外去欢迎求认证