zoukankan      html  css  js  c++  java
  • docker容器数据卷

    目的:1、宿主机或容器间共享数据2、数据的持久化

    方法:数据卷、数据卷容器

    表现为,共享目录

    数据卷

    docker run -v创建绑定挂载点

    -v|--volume[=[[HOST-DIR:]CONTAINER-DIR[:OPTIONS]]]

    Create a bind mount.

    If you specify, -v /HOST-DIR:/CONTAINER-DIR, 指定了宿主机挂载点,会绑定指定目录

    Docker bind mounts /HOST-DIR in the host to /CONTAINER-DIR in the Docker container.

    If 'HOST-DIR' is omitted,

    Docker automatically creates the new volume on the host. 不指定宿主机挂载点,会在宿主机自动创建一个目录

    The OPTIONS are a comma delimited list and can be:

    · [rw|ro]

    · [z|Z]

    · [[r]shared|[r]slave|[r]private]

    · [delegated|cached|consistent]

    · [nocopy]

    举例:

    指定宿主机挂载点

    宿主机在共享目录中新建一个文件file1,写入内容

    [root@localhost ~]# echo "host" >convol/file1

    在容器中查看

    [root@localhost ~]# docker exec -it d3e69264be7b cat /vol-1/file1

    host

    在容器中更新file1,在宿主机中查看

    [root@localhost ~]# docker exec -it d3e69264be7b /bin/bash

    [root@d3e69264be7b /]# ls

    bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var vol-1

    [root@d3e69264be7b /]# cd vol-1/

    [root@d3e69264be7b vol-1]# ls

    file1

    [root@d3e69264be7b vol-1]# echo "container" >> file1

    [root@d3e69264be7b vol-1]# read escape sequence

    [root@localhost ~]# cat convol/file1

    host

    container

    docker inspect查看

    关闭容器后,再启动容器,会重新挂载上

     

    容器只读权限设置

    [root@localhost ~]# docker run -it -v /root/convol/:/vol-2:ro centos

    docker inspect查看

     

    不指定宿主机挂载点

    [root@localhost ~]# docker run -it -v vol-3 centos

    [root@3fa6d202af32 /]# ls

    bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var vol-3

    [root@3fa6d202af32 /]# [root@localhost ~]#

     

    dockerfile

     

    docker中添加VOLUME属性

    VOLUME["/dataVolumeContainer","/dataVolumeContainer2","/dataVolumeContainer3"]

     

    编辑dockerfile文件

     

    docker build根据dockerfile文件生成镜像

    [root@localhost docker]# docker build -f /docker/dockerfile -t hjc/centos

     

    运行容器

     

    docker inspect查看

     

    写入一个文件查看

    数据卷容器

    命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器

    --volumes-from=[]

    Mount volumes from the specified container(s) 从指定的容器挂载卷

    Mounts already mounted volumes from a source container onto another

    container. You must supply the source's container-id. To share 必须指定源容器的ID

    a volume, use the --volumes-from option when running 使用--volumes-from参数,容器间共享卷

    the target container. You can share volumes even if the source container 源容器未运行也可以共享

    is not running.

     

    By default, Docker mounts the volumes in the same mode (read-write or 默认docker挂载卷的权限和源卷相同

    read-only) as it is mounted in the source container. Optionally, you

    can change this by suffixing the container-id with either the :ro or 可以修改挂载权限

    :rw keyword.

     

    If the location of the volume from the source container overlaps with 如果容器上已经有了相同名字的卷,共享卷会隐藏容器上的卷

    data residing on a target container, then the volume hides

    that data on the target.

     

    创建一个带数据卷的容器host1

     

    创建容器host2,使用--volumes-from参数

     

    docker inspect查看属性

    可以看到,共享的目录相同

  • 相关阅读:
    SharePoint 部署WebPart时 遇到"未能加载文件或程序集"错误
    SharePoint List ListItem 增删改 新增 修改 删除
    SharePoint 工作流错误日志
    asp.net网页中调用c#写的dll文件
    域帐号查询与更新
    POJ2386:Lake Counting(DFS) java程序员
    POJ2225:Asteroids!(BFS) java程序员
    POJ1019:Number Sequence(组合计数) java程序员
    POJ2446:Chessboard(二分匹配) java程序员
    POJ1018:Communication System(枚举+搜索剪枝) java程序员
  • 原文地址:https://www.cnblogs.com/jeancheng/p/13216476.html
Copyright © 2011-2022 走看看