• Docker数据卷


     实验环境:192.168.200.100  桥接

    [root@localhost ~]# docker images
    REPOSITORY      TAG           IMAGE ID              CREATED            SIZE
    nginx                       1                231d40e811cd    2 weeks ago        126MB
    nginx                       latest         231d40e811cd    2 weeks ago          126MB

    [root@localhost ~]# docker run -it --name test01 -v /html:/tmp nginx:1 /bin/bash                #运行并修改名称为test01方便记忆,-v是映射目录。将真机的/html与docker容器中的

    /tmp打通

    root@ef8f202fface:/# ls /tmp/                           #一开始是没有任何文件

    再开启一个192.168.200.100的窗口并执行这条操作

    [root@localhost ~]# touch /html/1.txt

    [root@localhost ~]# echo "111" > /html/1.txt

    再查询/tmp下有没有1.txt

    root@ef8f202fface:/# ls /tmp/
    1.txt

    root@ef8f202fface:/# cat /tmp/1.txt
    111

     重新运行一个容器并设置权限为只读权限

    [root@localhost ~]# docker run -it --name test02 -v /html:/tmp:ro nginx:1 /bin/bash

    root@2c39a7ca5cc8:/# ls /tmp/
    1.txt
    root@2c39a7ca5cc8:/# echo "2222" > /tmp/1.txt
    bash: /tmp/1.txt: Read-only file system                            #此时报错,因为不具备写权限

    再开一个192.168.200.100的窗口进行真机操作:

    [root@localhost ~]# echo "222" >> /html/1.txt

     再查询/tmp下有没有2222的数据

    root@2c39a7ca5cc8:/# cat /tmp/1.txt
    111
    222

     

    [root@localhost ~]# docker ps -a
    CONTAINER ID            IMAGE                   COMMAND            CREATED               STATUS                          PORTS               NAMES
    2c39a7ca5cc8             nginx:1                   "/bin/bash"              9 minutes ago          Up 9 minutes                 80/tcp                    test02
    ef8f202fface                nginx:1                  "/bin/bash"              22 minutes ago         Up 22 minutes                 80/tcp                  test01
    b676d7311157            nginx:1                   "/bin/bash"             43 minutes ago          Exited (0) 30 minutes ago                         heuristic_ritchie
    c4b32964d8d0           nginx:1                  "/bin/bash"               44 minutes ago          Exited (0) 21 minutes ago                          naughty_robinson
    [root@localhost ~]# docker ps -aq
    2c39a7ca5cc8
    ef8f202fface
    b676d7311157
    c4b32964d8d0
    [root@localhost ~]# docker ps -aq | while read line                 #利用循环的方式删除所有容器
    > do
    > docker rm -f $line
    > done
    2c39a7ca5cc8
    ef8f202fface
    b676d7311157
    c4b32964d8d0

    [root@localhost ~]# docker ps -a
    CONTAINER ID             IMAGE              COMMAND                CREATED             STATUS            PORTS                NAMES

    [root@localhost ~]# docker images
    REPOSITORY            TAG                 IMAGE ID                    CREATED                SIZE
    nginx                           1                     231d40e811cd             2 weeks ago            126MB
    nginx                          latest               231d40e811cd             2 weeks ago             126MB

     

    [root@localhost ~]# docker run -it -v /dbdata:/dbdata --name=dbdata nginx:1 /bin/bash
    root@17f9974820f5:/# exit
    exit

    [root@localhost ~]# docker ps -a
    CONTAINER ID          IMAGE                 COMMAND         CREATED                             STATUS                 PORTS       NAMES
    17f9974820f5             nginx:1               "/bin/bash"            About a minute ago Exited (0) 14 seconds ago                          dbdata

    [root@localhost ~]# docker run -it --name test01 --volumes-from dbdata nginx:1 /bin/bash
    root@4a1a6407ff83:/# ls
    bin     dbdata      etc       lib       media       opt      root      sbin      sys      usr
    boot     dev        home     lib64     mnt     proc       run        srv      tmp     var

     再开启一个192.168.200.100的窗口并执行这条操作

    [root@localhost ~]# touch /dbdata/1.html

     再查询dbdata下有没有1.html的数据

     root@4a1a6407ff83:/# ls dbdata/

     1.html

     相当于把数据卷的功能放到了容器内,谁指定,谁就能使用

     

     

     备份

    [root@localhost ~]# docker run --volumes-from dbdata -v $(pwd):/backup --name worker nginx:1 tar cvf /backup/backup.tar /dbdata

    运行结果为:

    tar: Removing leading `/' from member names
    /dbdata/
    /dbdata/1.html

    [root@localhost ~]# ls
    anaconda-ks.cfg       initial-setup-ks.cfg          模板            图片 下载 桌面
    backup.tar              公 共                   视频             文档  音               乐

     

     恢复:

    创建带有数据卷的容器:dadata2

    [root@localhost ~]# docker run -v /dbdata --name dbdata2 nginx:1 /bin/bash
    [root@localhost ~]# docker ps -a
    CONTAINER ID         IMAGE           COMMAND                       CREATED               STATUS                                    PORTS                NAMES
    50576a447682         nginx:1              "/bin/bash"                        8 seconds ago         Exited (0) 7 seconds ago                                dbdata2
    43527dd75b0d         nginx:1              "tar cvf /backup/bac…"     4 minutes ago         Exited (0) 4 minutes ago                                 worker
    4a1a6407ff83          nginx:1              "/bin/bash"                         18 minutes ago        Up 18 minutes 80/tcp                                    test01
    17f9974820f5          nginx:1              "/bin/bash"                          21 minutes ago        Exited (0) 20 minutes ago                              dbdata

    [root@localhost ~]# docker run --volumes-from dbdata2 -v $(pwd):/backup nginx:1 tar xvf /backup/backup.tar

    dbdata/
    dbdata/1.html

    ==========================================================================================

     

     ================================================================================================

  • 相关阅读:
    《区域经济分析方法》读书笔记
    系统规划思想
    《区域分析与规划高级教程》读书笔记
    经济社会发展投资决策支持平台
    关于区域货物运输预测研究
    (转)所有程序员都应该至少读上两遍的十篇论文
    文明的出现
    (转)所有架构师都应该至少读上两遍的十篇论文
    鸡蛋这样吃有害健康
    OOA/D学习笔记 1
  • 原文地址:https://www.cnblogs.com/CMX_Shmily/p/11994745.html
Copyright © 2020-2023  润新知