留个记录,方便回看

挂载新目录

1.查看容器存在位置

docker info | grap 'Root'

返回的是docker容器存储的位置:/var/lib/docker

2.获取容器对应的那个较长的id

docker ps -a
# 查看对应容器的名字
# 获取长id
docker inspect --format="{{.Id}}" [容器名字]

会返回一个挺长的容器id,例如9dc7dcfcc1d3d4b413a75ef6f70ddf6c6b03c3003e03916a3faadcf25e4ee813

3.进入对应容器配置文件目录

cd /var/lib/docker/containers/[获取的那长串id]

进入之后应该可以看到config.v2.jsonhostconfig.json。这两个就是需要更改的文件。

4.关闭容器,关闭docker(记着关,不然重启的时候会覆盖咱做的修改)

systemctl stop docker

5.修改config.v2.json

例如将主机下的home/dockertest文件夹映射到容器home/test中

在config.v2.json中找到MountPoints,添加以下代码。(如果MountPoints中有内容,记得加逗号)

文件vim命令打开后,并非格式化后的json,这里可以通过:%!python3 -m json.tool命令将其进行格式化,方便查看

{
    ......
	
	"MountPoints": {
		......,
		"/home/dockertest": {
			"Source": "/home/dockertest",
			"Destination": "/home/test",
			"RW": true,
			"Name": "",
			"Driver": "",
			"Type": "bind",
			"Propagation": "rprivate",
			"Spec": {
				"Type": "bind",
				"Source": "/home/dockertest",
				"Target": "/home/test"
			},
			"SkipMountpointCreation": false
		}
	},
	
	......
	
}

6.修改hostconfig.json

在Binds中添加以下代码(若Binds原本有内容,记得添加逗号)

{
	"Binds": [
		......,
		"home/dockertest:home/test"
	],
	
	......
	
}

7.重启docker和容器

systemctl start docker
docker start [容器id]

能在容器中找到home/test目录,就是成功了。