• Docker基础内容之数据持久化


    数据卷的特性

    • 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS
    • 数据卷可以在容器之间共享和重用,相当于将一个分区挂载到多个目录下面
    • 数据卷内容的修改会立马生效
    • 数据卷的更新,不会影响镜像;因为数据卷只是一个挂载点,跟容器本身并无太大的关系
    • 数据卷默认会一直存在,即使容器被删除;一般都需要手动去删除

    相关命令

    创建一个数据卷
    docker volume create my-vol
    
    查看所有的数据卷
    docker volume ls
    
    删除数据卷
    docker volume rm my-vol
    
    查看指定数据卷信息
    docker volume inspect my-vol
    
    创建一个名为 web 的容器,并加载一个 数据卷 到容器的 /webapp 目录
    docker run -d -P --name web --mount source=my-vol,target=/webapp training/webapp python app.py
    
    删除容器的同时,删除数据卷(默认数据卷不会随容器一并删除)
    docker rm -v
    
    清理所有未挂载到容器的数据卷
    docker volume prune
    
    指定挂载一个本地主机的目录到容器中去;
    docker run -d -P --name web --mount type=bind,source=/src/webapp,target=/opt/webapp training/webapp python app.py
    
    Docker 挂载主机目录的默认权限是读写,用户也可以通过增加 readonly 指定为只读
    docker run -d -P --name web --mount type=bind,source=/src/webapp,target=/opt/webapp,readonly training/webapp python app.py
    
    从主机挂载单个文件到容器中
    docker run --rm -it --mount type=bind,source=$HOME/.bash_history,target=/root/.bash_history ubuntu:18.04 bash
    
    PS:以前的docker版本中是用-v选项来进行容器数据卷的挂载,但是-v挂载的容器路劲如果不存在会自动创建;--mount挂载的容器路劲不存在则会报错,这是两者的区别,无所谓优劣
    
    
    使用-v选项进行挂载
    docker run -itd -v mysql:/var/lib/mysql --name mysql1 mysql
    docker run -itd -v /var/lib/mysql:/var/lib/mysql --name mysql1 mysql
  • 相关阅读:
    javascript常用对象
    oracle储存过程,job,视图,触发器(记性不好,写个例子自己记)
    xml直接读取节点
    脑瓜子的文章导航 脑瓜子的学院系列文章汇总
    ASP.NET MVC 中实现View与Controller分离
    开发
    SQLite学习手册(转)
    缓存数据库redis、memcached。 MongoDB 资源集锦
    在GOOGLE浏览器中模拟移动浏览器 调试Web app
    Intelligencia.UrlRewriter在IIS 7.0下的完全配置攻略
  • 原文地址:https://www.cnblogs.com/guge-94/p/11087186.html
Copyright © 2020-2023  润新知