欢迎光临
个人技术文档整理

Docker 修改容器挂载目录的3种方法

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
 

 

赞(3)