docker-修改容器挂载目录的3种方法
方式一:修改配置文件(需停止docker服务)-不推荐
- 找到配置文件
#找到Docker根目录 (Docker Root Dir: /fms/docker/image) docker info #获取容器Id ("Id": "84eaaa416167f71a3e11a6e61978b66d5b0a60050a5602284daa406e822dd9c9",) docker inspect [容器名称] #获取容器配置文件地址 /fms/docker/images/containers/84eaaa416167f71a3e11a6e61978b66d5b0a60050a5602284daa406e822dd9c9
- 停止docker服务-(关键,修改之前必须、必须、必须 停止docker服务,否则无用)
systemctl stop docker.service
- 修改配置文件
hostconfig.json"Binds": [ "/tkw/jkapi/upload:/app/wwwroot/upload", "/tkw/jkapi/config/appsettings.json:/app/appsettings.json" ]
config.v2.json"MountPoints": { "/app/appsettings.json": { "Source": "/tkw/jkapi/config/appsettings.json", "Destination": "/app/appsettings.json", "RW": true, "Name": "", "Driver": "", "Type": "bind", "Propagation": "rprivate", "Spec": { "Type": "bind", "Source": "/tkw/jkapi/config/appsettings.json", "Target": "/app/appsettings.json" }, "SkipMountpointCreation": false }, "/app/wwwroot/upload": { "Source": "/tkw/jkapi/upload", "Destination": "/app/wwwroot/upload", "RW": true, "Name": "", "Driver": "", "Type": "bind", "Propagation": "rprivate", "Spec": { "Type": "bind", "Source": "/tkw/jkapi/upload", "Target": "/app/wwwroot/upload" }, "SkipMountpointCreation": false } }
- 启动docker服务
systemctl start docker.service
- 启动docker容器
docker start [容器名称/容器Id]
方式二:提交现有容器为新镜像,然后重新运行它(推荐)
#从容器创建一个新的镜像
docker commit jk_image_container_api jk_image_api_v2
#创建新的容器 并挂载目录
docker run -p 5000:80 -it -v /tkw/jkapi/upload:/app/wwwroot/upload --name jk_image_api_v2_container -d jk_image_api_v2
#停止以前的容器
docker stop jk_image_container_api
#设置 新容器设为自启动
docker update --restart=always jk_image_api_v2_container
#重启 新的容器
docker restart jk_image_api_v2_container
#---------------------------------一下 可选----------------------------------
#删除旧容器或标记旧容器
#docker rm -f jk_image_container_api #删除旧容器
docker rename jk_image_container_api del_jk_image_container_api #标记旧容器
# 强制删除本地镜像 或 标记镜像
#第一种:docker rmi -f jk_image_api
#第二种:标记镜像名称,删除多余的镜像
docker tag jk_image_api deljk_image_api #修改镜像名称
docker rmi jk_image_api #删除多余的镜像
#容器重命名
docker rename jk_image_api_v2_container jk_image_container_api
方式三:export容器为镜像,然后import为新镜像
#将容器保存为tar镜像文件
docker export -o jk_image_api.tar jk_image_container_api
#从tar文件-创建镜像
docker import jk_image_api.tar jk_image_api_v3
#创建新的容器 并挂载目录
docker run -p 5000:80 -it -v /tkw/jkapi/upload:/app/wwwroot/upload --name jk_image_api_v3_container -d jk_image_api_v3 /bin/bash