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
  • 相关阅读:
    mysql dump 完全备
    CentOS7位安装MySql教程
    mysql 数据备份
    Linux下iostat命令详解
    端口映射
    git+jenkins jar包代码的发布加新建项目
    腾讯面试题
    PHP-----类与对象,成员方法,成员属性,构造方法,析构方法
    PHP-----二维数组和二分查找
    PHP-----数组和常见排序算法
  • 原文地址:https://www.cnblogs.com/guge-94/p/11087186.html
Copyright © 2011-2022 走看看