docker将本地目录映射到容器

留个记录,方便回看

挂载新目录

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目录,就是成功了。

参考文章:docker对已经启动的容器添加目录映射(挂载目录)_docker已运行容器挂载目录_alwaysonline819的博客-CSDN博客

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值