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