(九) 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. 查看宿主机中的文件内容

原文地址:https://www.cnblogs.com/asxf/p/11158912.html

时间: 2024-10-11 20:49:25

(九) Docker 容器数据卷(挂载)的相关文章

5、docker容器数据卷

Docker容器数据卷 是什么 一句话:有点类似我们Redis里面的rdb和aof文件 能干嘛 容器的持久化 容器间继承+共享数据 数据卷 容器内添加 直接命令添加 命令 docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名 查看数据卷是否挂载成功 容器和宿主机之间数据共享 容器停止退出后,主机修改后数据是否同步 命令(带权限) docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名 DockerFile添加 根目录下新建mydocker文

docker 12 docker容器数据卷

数据卷概念 ♣我们知道,当我们把一个运行中的容器关闭后,容器里的数据就没有了(如果你做了docker commit操作,数据会保留到新的镜像里面).所以我们就需要用容器数据卷把容器数据进行持久化储存. ♣还有一种情况,就是希望容器之间能共享数据,这时也需要容器数据卷. ♣一句话,数据卷就是用来解决数据持久化和数据共享的. ♣卷就是目录或者文件,存在一个或者多个容器中,由docker宿主机挂载到容器上,但是不属于联合文件系统,因此能绕过联合文件系统提供一些用于持久化存储或者共享数据的特性. ♣卷的

Docker系列-第五篇Docker容器数据卷

1.是什么 在生产环境中使用 Docker,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作 . 容器中的管理数据主要有两种方式 : 数据卷 ( Data Volumes ) : 容器内数据直接映射到本地主机环境: 数据卷容器( Data Volume Containers ) : 使用特定容器维护数据卷. 一句话:有点类似我们Redis里面的rdb和aof文件 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的

Docker容器数据卷

容器关闭,数据消失: 我们对数据的要求希望是 持久化的: 容器之间希望可以共享数据: 一.能干嘛: 1.持久化 2.数据共享,双向拷贝 二.数据卷 容器内添加: 1.直接命令添加 2.DockerFile添加 3.备注 原文地址:https://www.cnblogs.com/pthaochiya/p/11666235.html

自己学Docker:7.数据卷容器的备份、恢复

最近由于工作的原因,各种事情,忙的要死.用户发现软件有问题,也不管是不是自己操作的问题,一口就咬定是软件的问题,询问什么问题时就"有问题"三个字回应也是醉了. 烦心事过去就不说,之前一直关于Docker看到了数据卷容器,就像知道数据卷容器有什么用处.查了不少资料,最基本的用处还是利用数据卷容器来备份.恢复.迁移数据卷. 备份 我们先创建一个data容器. sudo docker run -i -t -v /data --name data c9fc7f8eec37 根据之前Docker

容器数据卷网络基本配置

容器和主机.容器与容器之间需要数据共享时可以使用数据卷技术解决 容器中管理数据的主要方式有两种:数据卷.数据卷容器 1 数据卷 1.1 数据卷特性 可在容器之间共享和重用 对数据卷的修改马上生效 对数据卷的更新不影响镜像 卷会一直存在,直到没有容器使用 1.2 在容器内创建一个数据卷的方式,在启动的时候使用 -v 标记,可以创建一个数据卷挂载到容器指定目录中,也可以挂载本地目录到容器中作为数据卷. 说明:本地目录路径必须是绝对路径,如果不存在,docker会自动创建. 1.3 数据卷容器,可以在

Docker之数据卷Volume(七)

一.简介 Docker数据卷(volume)机制.volume是存在于一个或多个容器中的特定文件或文件夹,这个目录以独立于联合文件系统的形式在宿主机中存在,并为数据的共享与持久化提供便利. 1)volume在容器创建时就会初始化,在容器运行时就可以使用其中的文件 2)volume能在不同的容器之间共享和重用 3)对volume中数据的操作会马上生效 4)对volume中数据的操作不会影响到镜像本身 5)volume的生存周期独立于容器的生存周期,即使删除容器,volume仍然会存在,没有任何容器

docker 数据管理数据卷

1,数据卷 数据卷是一个可供容器使用特殊目录,他将主机操作系统目录直接映射容器 1,在容器内创建一个数据卷 在使用docker run命令的时候,使用-v标记就可以创建一个数据卷,多次重复使用-v可以创建多个数据卷,例如使用training/webapp 镜像创建一个web容器,并创建一个数据卷挂载到容器的/webapp目录 2,挂载一个主机目录作为数据卷 3数据卷容器共享数据 原文地址:https://www.cnblogs.com/1204guo/p/9256238.html

docker创建数据卷以及数据卷容器

docker容器管理有2中方式: 1:数据卷:类似Linux下目录挂载mount 2:数据卷容器:其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的 使用docker search xxx //xxx指的是搜索相应的镜像.搜索后根据自己需求进行pull 下载镜像 [email protected] :~# docker pull jdeathe/centos-ssh 查看pull后的镜像 [email protected] :~# docker images REPOSITORY