zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    LINUX按键驱动程序
    s3c2440地址分配
    Linux内核代码
    C语言初始化
    tftp协议
    ARM工作模式
    Bootstrap3隐藏滑动侧边栏菜单代码特效
    javascript 中slice,substr,substring方法的对比
    vue 的简述
    鼠标移动出自己想要的效果
  • 原文地址:https://www.cnblogs.com/guge-94/p/11087186.html
Copyright © 2011-2022 走看看