美文网首页
Docker镜像升级保留数据(volume)

Docker镜像升级保留数据(volume)

作者: 水妖 | 来源:发表于2021-05-10 14:49 被阅读0次

原理:修改容器配置文件中"MountPoints"节点

本例:

镜像:tomcat
挂载卷:/var/lib/docker/volumes/9d5a75bf40d6239c7279ca0e79716fa3a6197aa78d9e6b8265b6879a1ef6bf6b/_data
卷指向:/usr/local/tomcat/webapps

1. 查询相关配置信息

docker inspect tomcat

1.1 容器路径

#找到
...
"ResolvConfPath": "/var/lib/docker/containers/608ecbe281067b1c41454a0ada8f1be4e43c5b9dcd46f94ccce9da8613bfef2b/resolv.conf"
...
截取得到容器路径:
/var/lib/docker/containers/608ecbe281067b1c41454a0ada8f1be4e43c5b9dcd46f94ccce9da8613bfef2b

1.2 挂载信息

配置文件路径:(容器路径/config.v2.json)
#挂载卷id:  9d5a75bf40d6239c7279ca0e79716fa3a6197aa78d9e6b8265b6879a1ef6bf6b
...
    "MountPoints":{
        "/usr/local/tomcat/webapps":{
            "Source":"/var/lib/docker/volumes/9d5a75bf40d6239c7279ca0e79716fa3a6197aa78d9e6b8265b6879a1ef6bf6b/_data",
            "Destination":"/usr/local/tomcat/webapps",
            "RW":true,
            "Name":"9d5a75bf40d6239c7279ca0e79716fa3a6197aa78d9e6b8265b6879a1ef6bf6b",
            "Driver":"local",
            "Type":"volume",
            "Relabel":"z",
            "Spec":{
                "Type":"volume",
                "Source":"9d5a75bf40d6239c7279ca0e79716fa3a6197aa78d9e6b8265b6879a1ef6bf6b",
                "Target":"/usr/local/tomcat/webapps"
            },
            "SkipMountpointCreation":false
        }
    }
...

2. 停止并删除tomcat容器

docker stop tomcat
docker rm tomcat

3. 获取所需最新镜像

4. 创建新的容器

docker run --name tomcat -it  -p 80:8080 tomcat
# 说明:
# run : 运行
# --name tomcat : 命名为tomcat
# -p 80:8080 : 端口
# tomcat : 源镜像

5. 停止docker服务

service docker stop

6. 修改新tomcat容器的配置文件

(通过步骤1获取新容器配置文件路径)
...
    "MountPoints":{
    }
...

修改为 (原容器的配置:1.2 挂载信息拷过来)

...
    "MountPoints":{
        "/usr/local/tomcat/webapps":{
            "Source":"/var/lib/docker/volumes/9d5a75bf40d6239c7279ca0e79716fa3a6197aa78d9e6b8265b6879a1ef6bf6b/_data",
            "Destination":"/usr/local/tomcat/webapps",
            "RW":true,
            "Name":"9d5a75bf40d6239c7279ca0e79716fa3a6197aa78d9e6b8265b6879a1ef6bf6b",
            "Driver":"local",
            "Type":"volume",
            "Relabel":"z",
            "Spec":{
                "Type":"volume",
                "Source":"9d5a75bf40d6239c7279ca0e79716fa3a6197aa78d9e6b8265b6879a1ef6bf6b",
                "Target":"/usr/local/tomcat/webapps"
            },
            "SkipMountpointCreation":false
        }
    }
...

7. docker服务重启

service docker start

8. tomcat启动

docker start tomcat

说明:

修改容器的配置文件需要重启docker服务,如:
config.v2.json
hostconfig.json

相关文章

网友评论

      本文标题:Docker镜像升级保留数据(volume)

      本文链接:https://www.haomeiwen.com/subject/ccgbdltx.html