docker 和挂载文件一起打包成新镜像_15,Docker数据卷-实现数据持久化及共享

1,什么是Docker容器数据卷?

首先,我们来回顾下Docker的理念:

  • 将应用和运行的环境打包形成镜像,然后再由镜像创建容器并运行,这过程随着容器的运行,可能会产生一些数据,但是Docker容器产生的数据,如果不通过docker-commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。

所以,为了能保存容器运行过程中产生的数据,我们使用数据卷来实现持久化。 另外,也可以实现容器间继承+共享数据。

2,Docker容器数据卷的特点

数据卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷

特点:

  • 1:数据卷可在容器之间共享或重用数据
  • 2:卷中的更改可以直接生效
  • 3:数据卷中的更改不会包含在镜像的更新中

3,给容器添加数据卷

1,命令格式:

命令格式:docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名

比如: docker run -it -v /hostDatavolume:/containerDatavolume centos /bin/bash

2,检查是否挂载成功

1,查看相关的目录是否创建成功

2,docker inspect 容器ID

查看绑定关系是否已经建立

dc8f1cd74bf75a8970060bfa1c8bfd9a.png

3,数据共享测试

1,容器和宿主机之间数据共享

我们通过在宿主机的环境和容器的环境下,分别操作文件,观察数据是否可以同步

2,容器停止退出后,主机修改后数据是否同步

(1),容器先停止退出

(2),宿主机修改文件

(3),重新启动容器

(4),观察文件是否同步

3,设置只读数据卷

命令格式:docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名

例如: docker run -it -v /hostDatavolumeRo:/containerDatavolumeRo:ro centos

在容器内执行创建文件:

b5e7fd67fd69668e28402fcab255b631.png

只可以在宿主机创建文件,然后共享给容器,但是容器内不允许修改文件

4,数据卷容器

1,什么是数据卷容器

我们之前给容器挂载了数据卷,然后其它容器也可以通过挂载这个容器(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器

2,实现数据卷容器的继承传递

docker run -it --name childDoc --volumes-from 77c79cca0420 centos

bb39825e0456832263c381ae74cd9807.png
您可以使用 Docker数据来将数据镜像一起打包数据是指在容器和主机之间共享数据的一种机制,它将数据存储在主机上的特定目录,并将该目录挂载容器。 以下是一个示例步骤,演示如何将数据镜像一起打包: 1. 创建一个数据: ``` $ docker volume create mydata ``` 2. 启动一个容器,并将数据挂载容器的指定路径: ``` $ docker run -v mydata:/path/to/data myimage ``` 这将启动一个基于 `myimage` 镜像容器,并将 `mydata` 数据挂载容器的 `/path/to/data` 路径。 3. 在容器存储数据: ``` $ docker exec -it <container_id> /bin/bash # 在容器执行命令,将数据存储到挂载数据 ``` 使用 `docker exec` 命令进入容器,并在容器执行命令,将需要的数据存储到挂载数据。 4. 停止并删除容器: ``` $ docker stop <container_id> $ docker rm <container_id> ``` 5. 导出数据: ``` $ docker run --rm -v mydata:/path/to/data -v $(pwd):/backup busybox tar cvf /backup/data.tar /path/to/data ``` 这将在当前目录下创建一个名为 `data.tar` 的归档文件,其包含了数据存储的数据。 6. 创建一个镜像,并将归档文件添加到镜像: ``` $ docker build -t mynewimage -f Dockerfile . ``` 在 Dockerfile 使用 `COPY` 命令将归档文件添加到镜像。 现在,您可以使用 `mynewimage` 镜像启动容器,并访问其包含的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值