给已经运行的docker容器挂载外部文件夹的方法

容器已经运行,但是还想要给他挂载文件夹

文件夹或者文件挂载通常是在运行容器时加上 -v 命令进行挂载。运行起来的容器想挂载文件夹可以通过修改容器在宿主机的配置文件进行解决。

具体方法

1、使用命令查看容器存放路径

docker info | grep 'Root'

2、进入容器存放的路径下,并查看该路径下具体有哪些文件

# 我上一步输出的路径是/var/lib/docker,可以替换成自己的路径
cd /var/lib/docker
ls

3、文件夹containers就包含的是各个容器的配置文件的目录,进入containers这个文件夹

cd containers

4、然后复制你的容器ip(Tab自动补全),cd 进入你容器的配置文件夹

cd e200ed9abe735ab336323fb16a63879c6c88f2dc1462d80a6d582a4d7240547f

5、修改配置文件config.v2.json和hostconfig.json(最关键的一步)
!!! 修改配置文件前一定要关掉容器并且停掉docker服务,否则配置过的内容会被冲刷掉

例如:将宿主机文件夹/root/data与容器中的文件夹/home/ele/data进行挂载

docker stop e200ed9abe735ab336323fb1
systemctl stop docker  # 在关闭docker时,如果出现docker.socket并未关闭,一定要使用命令systemctl stop docker.socket 将其关闭再去关闭docker
systemctl stop docker.socket
systemctl stop docker

修改配置文件config.v2.json:在config.v2.json文件中找到MountPoints,配置如下,只需更改为你的目录即可。要注意逗号的问题,符合json格式。

 "MountPoints": {
        "/home/ele/data": {
            "Source": "/root/data",
            "Destination": "/home/ele/data",
            "RW": true,
            "Name": "",
            "Driver": "",
            "Type": "bind",
            "Propagation": "rprivate",
            "Spec": {
                "Type": "bind",
                "Source": "/root/data",
                "Target": "/home/ele/data"
            },
            "SkipMountpointCreation": false
        }
      },

修改配置文件hostconfig.json

"Binds": [
        "/root/data:/home/ele/data"
    ],

6、重启docker 重启容器

systemctl start docker
docker start e200ed9abe735ab336323fb1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值