Linux,docker Docker修改挂载目录 发表于 2023-02-13 浏览量 1283 没有评论 # Docker修改挂载目录 # 修改运行中的容器挂载目录 # 方式一: * 停止docker服务 # 1、查找需要修改的docker-ID ```bash docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6581a2b15f50 nginx:latest "/docker-entrypoint.…" 2 weeks ago Up 5 minutes 0.0.0.0:8086->80/tcp, :::8086->80/tcp nginx ``` # 2、关闭docker服务(很多服务器的时候,谨慎关闭!) ```bash systemctl stop docker ``` # 3、查找容器存放目录 ```bash docker info | grep "Root" Docker Root Dir: /var/lib/docker ``` # 4、进入容器 ```bash cd /var/lib/docker/containers/ cd 6581a2b15f5075d314d1912422da638ccafd0ec3c40da41643cc8b1a6ed1d31c [root@yuanhui-211 6581a2b15f5075d314d1912422da638ccafd0ec3c40da41643cc8b1a6ed1d31c]# ll 总用量 120 -rw-r-----. 1 root root 98103 2月 13 16:37 6581a2b15f5075d314d1912422da638ccafd0ec3c40da41643cc8b1a6ed1d31c-json.log drwx------. 2 root root 6 1月 30 15:45 checkpoints -rw-------. 1 root root 3173 2月 13 16:37 config.v2.json -rw-r--r--. 1 root root 2000 2月 13 16:37 hostconfig.json -rw-r--r--. 1 root root 13 2月 13 16:37 hostname -rw-r--r--. 1 root root 174 2月 13 16:37 hosts drwx--x---. 2 root root 6 1月 30 15:45 mounts -rw-r--r--. 1 root root 54 2月 13 16:37 resolv.conf -rw-r--r--. 1 root root 71 2月 13 16:37 resolv.conf.hash ``` # 5、修改config.v2.json ```bash vim config.v2.json # 会看到一堆的乱码,别慌,我们来格式化一下 :%!python -m json.tool ····· "MountPoints": { "/data/web": { # 本地文件 "Destination": "/usr/share/nginx/html/", # 目标文件 "Driver": "", "Name": "", "Propagation": "rprivate", "RW": true, "SkipMountpointCreation": false, "Source": "/data/web", # 本地文件 "Spec": { "Source": "/data/web", # 本地文件 "Target": "/usr/share/nginx/html/", # 目标文件 "Type": "bind" }, "Type": "bind" } }, ···· ``` # 6、重启容器 ```bash systemctl start docker ``` # 7、查看挂载信息 ```bash docker inspect 6581a2b15f507 .... "Mounts": [ { "Type": "bind", "Source": "/data/web", "Destination": "/usr/share/nginx/html/", "Mode": "", "RW": true, "Propagation": "rprivate" } ], .... ``` # 8、测试 ```bash echo "success!" > /data/web/index.html [root@yuanhui-211 web]# curl 127.0.0.1:8086 success! ``` # 方式二: * 提交现有容器为新镜像,然后重新运行它 ```bash docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6581a2b15f50 nginx:latest "/docker-entrypoint.…" 2 weeks ago Up 5 minutes 0.0.0.0:8086->80/tcp, :::8086->80/tcp docker commit 6581a2b15f50 newimagename # 构建新镜像 docker run -d -v "$PWD/dir1":/dir1 -v "$PWD/dir2":/dir2 newimagename # 运行新的镜像,然后挂载目录。 # 如果要用旧的容器名,请删除旧的容器。 ```