zoukankan      html  css  js  c++  java
  • Docker基础七(数据卷管理)

    Docker 数据卷的使用场景; 复制宿主机文件到容器中,怎样创建数据卷, 以及数据卷的权限管理。

    一、数据卷特点

        数据卷是一个可供一个或多个容器使用的本地文件目录,主要特性如下:

      1、数据卷可以在容器之间共享和重用
      2、对数据卷的修改会立即生效
      3、对数据卷的更新,不会影响镜像 4)数据卷默认会一直存在,即使容器被删除

        提示:数据卷的使用,类似于 Linux 下对目录进行 mount。

        1、使用场景

      1、程序目录
      2、程序日志
      3、集群数据目录

    2、数据卷操作

      从容器内拷贝文件到主机上
      1、语法:
      docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-

      将容器的/test.txt 拷贝到主机的 /tmp目录中

    [root@master docker]# docker run --name c1 -it -h c1-test centos /bin/bash
    [root@c1-test /]# echo 111111 > /test.txt  # 容器操作
    [root@master ~]# docker cp c1:/test.txt /tmp
    [root@master ~]# ls /tmp/test.txt
    /tmp/test.txt
    [root@master ~]# cat /tmp/test.txt
    111111

      2、推送文件至容器/tmp 目录下,通过容器ID

    [root@master ~]# echo  22222222 > ceshi.txt
    [root@master ~]# docker cp ./ceshi.txt c1:/tmp
    # 注意复制到容器中的文件与挂载本机的目录到容器有不同, 如果是挂载的模式,在本机目录写入文件
    那么也会同步到容器, 如果是复制文件,则内容不会同步 
    [root@c1-test /]# ls /tmp
    ceshi.txt  ks-script-2n9owwnh  ks-script-xm1o5azb
    [root@c1-test /]# cat /tmp/ceshi.txt          # 容器操作
    22222222

      3 检查

    [root@master ~]# docker attach c1 
    或者
    [root@master ~]# docker container exec -it c1 /bin/bash
    [root@c1-test /]# ls /tmp
    ceshi.txt  ks-script-2n9owwnh  ks-script-xm1o5azb
    [root@c1-test /]# cat /tmp/ceshi.txt
    22222222

        3、创建数据卷

      使用docker run 命令中使用-v 标识来给容器内添加一个数据卷,也可以在一次docker run 命令中, 多次使用-v 标识挂载多个数据卷。

    数据卷的使用场景
    1、创建一个新容器并挂载本地目录

    # 将本地目录/mnt 挂载到容器的/mnt
    [root@master ~]# echo  555555 > /mnt/555555.txt
    [root@master ~]# docker run --name centos-mnt -it -v /mnt/:/mnt centos /bin/bash
    [root@a8edb31a1c87 /]# ls /mnt
    555555.txt
    [root@a8edb31a1c87 /]# cat /mnt/555555.txt
    555555
    # 在宿主机/mnt 创建目录, 会在容器挂载目录中实时看到
    [root@master mnt]# mkdir 555
    # 容器查看
    [root@a8edb31a1c87 mnt]# ls /mnt
    555  555555.txt

        4、数据卷权限设置

      docker 默认情况下是对数据卷有读写权限,但是通过这样的方式让数据卷只读

    [root@master ~]# docker run -it --name centos-ro -v /mnt:/mnt:ro centos /bin/bash
    # 创建文件报错
    [root@b62156d96de4 /]# cd  /mnt/
    [root@b62156d96de4 mnt]# touch  111.txt
    touch: cannot touch '111.txt': Read-only file syste
  • 相关阅读:
    搭建集群时遇到各种奇葩问题的大招~~
    oracle初学心得(转)
    "小寒"饮食养生
    时刻修正自已的思想
    myeclipse使用
    从javascript语言本身谈项目实战(转)
    Java的内存泄漏(转)
    概念解释
    小穴位大健康——李智
    历史朝代表
  • 原文地址:https://www.cnblogs.com/lhanghang/p/13583051.html
Copyright © 2011-2022 走看看