zoukankan      html  css  js  c++  java
  • Docker 容器数据卷(挂载)

    一、容器数据卷

      docker 容器数据卷是容器在运行过程中持久化数据的一种方式,卷是目录或文件,存在于一个或多个容器中,由docker 挂载到容器,但不属于联合文件系统,因此能够绕过Union File System  提供一些用于持续存储或共享数据的特性;卷的设计目的就是数据持久化,完全独立于容器的生命周期,因此docker不会在容器删除时,删除其挂载的数据卷。

      特点:

    1. 数据卷可在容器之间共享或重用数据。
    2. 卷中的更改可以直接生效。
    3. 数据卷中的更改,不会包含在镜像中的更新。
    4. 数据卷的生命周期一直持续到没有容器使用它为止。

    二、 容器数据卷添加

      1.  直接命令添加
        docker run -it -v /宿主机绝对路径:/容器内目录:权限   镜像名

        权限: ro (容器只能查看)

        例: 启动一个 tomcat 容器 ,在容器 webapps 中增加一份文件,并且增加修改记录。同时宿主机也做相同操作。

          1.1  启动Tomcat容器,执行完此命令后我们已经启动一个tomcat 。

               并且宿主机的/home/webapps目录和容器中的 /usr/local/tomcat/webapps 目录相关联,当这两个目录中的文件会互相同步

        docker run -d -p 8080:8080 --name tomcat-v  -v /home/webapps:/usr/local/tomcat/webapps tomcat

               1.2  在宿主机的 /home/webapps 中创建一个 hello-host.txt 文件,在容器的 /usr/local/tomcat/webapps 目录中也创建一个 hello-tomcat.txt文件,文件内容为文件名。

               

               

              1.3 查看容器中的文件,和宿主机中的文件
               容器中:
               

               宿主机中:

               
              1.4  通过 docker inspect 命令查看挂载信息
               

        docker inspect 72f574d46676

      2.  docker file 添加,使用 CentOS 演示

        1. 创建一个 Dockerfile 文件
        2. 编辑文件内容,写入以下信息
          FROM centos
          VOLUME ["/dataVlolumeContainer1","/dataVlolumeContainer1"]
          CMD echo "finished,-----------success"
          CMD /bin/bash

          FROM  来自于一个父类的镜像

          VOLUME  给镜像添加一个或多个容器卷

          CMD  控制台执行的命令

        3.  build   构建镜像
          docker build -f /home/my-docker-file/Dockerfile -t  qizhi/centos  .

          参数:
            -f 指定dockerfile 文件,默认情况下在执行命令的目录下寻找 Dockerfile 文件
          -t 指定镜像名称
          . 在当前目录下生成镜像
        4. 运行我们自己构建的镜像,并进入镜像,查看我们自己生成镜像时创建的两个文件夹

          启动并进入容器:
          docker run -it qizhi/centos /bin/bash

        5. 在容器我们构建的两个容器卷中创建一个文件,并写入一些文字。
        6. 在宿主机中查看我们在容器卷中创建的文件,和写入的文件内容。
          注: 可以使用 ctrl + q + P 退出容器,让容器进入后台运行。退回宿主机中

          使用 inspct 命令查看容器信息找到宿主机中相应的容器卷
          docker inspect 1c56ca8581ea

        7.  查看宿主机中的文件内容


  • 相关阅读:
    mysql语句删除重复数据,保留一条;查询所有重复数据;查询重复数据的一条,
    使用pycharm 运行python的django项目时报错“Quit the server with CTRL-BREAK.”
    检查python以及django是否安装配置成功
    使用Pycharm开发python下django框架项目生成的文件解释
    XML序列化与反序列化
    前台异步传过来的URL中获取token/获取string链接中的token
    字符串json转成json对象
    MySql查询语句中解决“该列没有包含在聚合函数或者groupby子句中”的相关问题方法
    图形验证码的生成(数字和英文大小写)和提交验证
    JQuery使用正则表达式验证手机号,邮箱,身份证(含有港澳台),网址
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/13433550.html
Copyright © 2011-2022 走看看