• 学习docker记录(三)


    使用volume

    创建一个数据卷
    docker volume create test-first-volume
    
    • 1

    创建完之后,可以在 /var/lib/docker/volumes/ 目录下看见新建了一个 test-first-volume文件夹

    在这里插入图片描述

    在Dockerfile中 volume的指定的目录是:

    /www/wwwroot/pictureManager/deploy
    
    • 1

    原本以为会在/var/lib/docker/volumes/{容器id}下的目录有,但是并没有;不太清楚那Dockerfile中volume指定的目录有啥作用,百度了下,大概意思是:

    Dockerfile中volume指定的目录只是声明了一个匿名数据卷,并不会实际创建这个目录;只有当有需要写入数据的时候会创建这个目录从而写入数据;因为有些镜像,比如mysql,如果没有在docker run 中指定 -v 显式的添加数据卷目录,不能就把创建的表和插入表的数据随着容器的销毁而丢失掉数据;如果在Dockerfile中指定了volume目录,在docker run也添加了 -v 指定数据卷的目录,就会根据docker run中的来。

    先查询所有数据卷:docker volume ls

    在这里插入图片描述

    接着查看 test-second-volume数据卷的信息:docker volume inspect test-second-volume

    在这里插入图片描述

    在dokcer run中加入-v参数:

    docker run -d -p 8070:8070 --name pcitureManager -v test-second-volume:/www/wwwroot/pictureManager/deploy pc/module:0.1
    
    
    • 1
    • 2

    再次查看这个数据卷的信息:docker volume inspect test-second-volume

    在这里插入图片描述

    并没有啥改变,用 docker inspect {容器名称} : docker volume inspect pcitureManager ,会打印一大串信息。

    删除数据卷:

    docker volume rm  {数据卷名称}
    
    • 1

    清理无主的数据卷:

    docker volume prune
    
    • 1

    将应用内的日志挂载到宿主机

    执行命令:

    docker run -d -p 8070:8070 --name pcitureManager -v /www/wwwroot/logs:/logs/module  pc/module:0.1
    
    
    • 1
    • 2

    在这里插入图片描述

    可以看到挂载日志文件成功,并且打印之后,这个文件也会跟着变化的。

  • 相关阅读:
    SwiftUI 中的水平条形图
    网络与VPC之动手实验
    C++string类的模拟实现以及经验分享
    pymysql连不上mysql的原因
    (十)死信队列
    vscode在mac上保存项目文件提示保存失败
    Python算法——二叉树遍历
    Linux 进程管理之命名空间
    Node.js和浏览器在JavaScript运行环境方面存在一些区别和联系
    《机械原理》下 学后感
  • 原文地址:https://blog.csdn.net/ZRL1996/article/details/127697261