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

    docker容器数据卷

    什么是数据卷?

    一句话:类似于Redis里面的rdb和aof文件

    数据卷能干什么?

    容器数据持久化

    容器之间继承+数据共享

    数据卷添加方式?

    1、直接命令添加(-v 有自动创建文件夹功能)

    语法:docker run -it -p 8080:8080 -v /宿主机绝对路径目录:/容器内目录 镜像名字

    例子:docker run -it -d -p 8888:8080 -v /app/volume/:/usr/local/tomcat/webapps tomcat

    查看是否挂载成功:docker inspect 容器id(下图绑定成功)

    注意:

    挂载成功以后容器的文件和宿主机的文件实现共享,可读可写。相互的!

    容器宕机以后,在宿主机修改文件。然后再次启动容器且进去该容器,发现文件又同步过来了!

    1.1、带权限的命令添加**

    语法:docker run -it -p 8080:8080 -v /宿主机绝对路径目录:/容器内目录:【权限】 镜像名字

    例子:docker run -it -d -p 8888:8080 -v /app/volume/:/usr/local/tomcat/webapps:ro tomcat

    ro 只读 容器的文件主机只可以看,不可以更改!

    2、DockerFile添加

    1、新建目录/app/docker_file_tst,且进来

    2、创建一个名为test01.yml的文件

    [root@tzh docker_file_tst]# cat test01.yml 
    FROM centos

    VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]

    CMD echo "finished,--------success1"

    CMD /bin/bash

    3、build这个yml -----> docker build -f test01.yml -t tzh/centos . 这个 "." 也得添加

    [root@tzh docker_file_tst]# docker build -f test01.yml -t tzh/centos
    "docker build" requires exactly 1 argument.
    See 'docker build --help'.
    Usage: docker build [OPTIONS] PATH | URL | -
    Build an image from a Dockerfile
    [root@tzh docker_file_tst]# docker build -f test01.yml -t tzh/centos .
    Sending build context to Docker daemon  2.048kB
    Step 1/4 : FROM centos
    ---> 831691599b88
    Step 2/4 : VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
    ---> Running in bbae433f1aa0
    Removing intermediate container bbae433f1aa0
    ---> feff3a9f82b1
    Step 3/4 : CMD echo "finished,--------success1"
    ---> Running in 1fd4f541a4a0
    Removing intermediate container 1fd4f541a4a0
    ---> 377f83582ef5
    Step 4/4 : CMD /bin/bash
    ---> Running in f91711e00915
    Removing intermediate container f91711e00915
    ---> f5892bf5a85c
    Successfully built f5892bf5a85c
    Successfully tagged tzh/centos:latest
    查看刚刚做的镜像
    [root@tzh docker_file_tst]# docker images
    REPOSITORY     TAG         IMAGE ID         CREATED         SIZE
    tzh/centos     latest     f5892bf5a85c     2 minutes ago   215M

    4、run 容器--------> docker run -it tzh/centos

    查看容器内的数据卷位置

    [root@d7294375a4db /]# pwd
    /
    [root@d7294375a4db /]# ls
    bin dataVolumeContainer1 dataVolumeContainer2 dev etc hom

    5、宿主机的对应目录在哪里呢?

    docker inspect 容器id

    注意:

    Docker挂载主机目录Docker访问出现cannot open directory .: Permission denied

    解决办法:在挂载目录后多加一个--privileged=true参数即可

    语法:docker run -it -p 8080:8080 -v /宿主机绝对路径目录:/容器内目录 --privileged=true tomcat 镜像名字

    例子:docker run -it -d -p 8888:8080 -v /app/volume/:/usr/local/tomcat/webapps --privileged=true tomcat

  • 相关阅读:
    HDU 1873 看病要排队(结构体+优先队列)
    优先队列
    栈和队列
    Light OJ 1214 Large Division (大数取模)
    LightOJ 1078 Integer Divisibility (同余定理)
    51nod 1513-3的幂的和(费马小定理+快速幂)
    51nod 1256 乘法逆元(扩展欧几里得)
    格式测试
    点Point 圆Circle 圆柱Cylinder的继承与派生
    JUC 并发编程--04 常用的辅助类CountDownLatch , CyclicBarrier , Semaphore , 读写锁 , 阻塞队列,CompletableFuture(异步回调)
  • 原文地址:https://www.cnblogs.com/hsyw/p/13195702.html
Copyright © 2011-2022 走看看