docker数据管理操作

docker数据管理

1.介绍docker数据管理

2.​容器中的数据管理方式:

主要有两种:

  • 数据卷
  • 数据卷容器

在 Docker 中,数据管理是非常重要的,因为容器本身是临时的,当容器停止或删除时,容器内部的数据也会丢失。为了持久化数据并方便数据共享和重用,Docker 提供了两种主要的数据管理方式:数据卷(Volumes)和数据卷容器(Volume Containers)。

数据卷(Volumes):

数据卷是一种特殊的目录,可以绕过默认的文件系统,提供持久化存储。数据卷可以在容器之间共享和重用,并且数据卷中的数据不会随容器的删除而丢失。以下是关于数据卷的一些重要特点:

  1. 持久性:数据卷的生命周期独立于容器,即使容器被删除,数据仍然存在。
  2. 数据共享:多个容器可以共享同一个数据卷,在这些容器之间共享数据非常方便。
  3. 数据卷挂载:数据卷通过将宿主机上的目录或卷挂载到容器内部来实现,可以在运行容器时创建数据卷并指定挂载路径。

数据卷容器(Volume Containers):

数据卷容器是一个独立的容器,专门用来提供数据卷给其他容器使用。通过创建一个数据卷容器,并将数据卷挂载到该容器中,其他容器可以通过挂载这个数据卷容器来共享数据。数据卷容器提供了更好的数据管理和共享能力,使得数据卷的管理更加灵活和可控。

数据管理的重要性:

数据管理在容器化应用中扮演着至关重要的角色。通过合理地利用数据卷和数据卷容器,可以实现数据的持久化存储、共享和重用,有助于保持数据的一致性和完整性,同时也方便了容器间的数据传递和共享,提高了整个应用的灵活性和可靠性。

总的来说,数据卷和数据卷容器是 Docker 中非常重要的数据管理方式,能够帮助我们更好地管理容器中的数据,确保数据的持久性和共享性,提高整个应用的可靠性和可维护性。

3.对于对数据卷的操作,docker常用命令:

  • 创建数据卷:(有两种创建方法)

第一种:

 $ docker volume create <container id / name>

第二种:
在运行容器的同时创建一个名为 test 的数据卷,可以使用以下命令:

docker run -v test:/path/in/container test

在这里插入图片描述

  • 查看数据卷
 docker volume ls 

在这里插入图片描述
[1]这里DRIVER是驱动的意思,显示的是本地(local)驱动,创建数据卷默认的驱动就是默认驱动;
[2]这里VOLUME NAME 的意思是数据卷名称。

-查看数据卷详情

 docker volume inspect <container id / name>

在这里插入图片描述
这里mountpoint表示的是挂载点,这个是比较常用的地方,关注一下。

  • 删除数据卷
docker volume rm <container id / name>

在这里插入图片描述

4.绑定数据卷

在 Docker 中,绑定挂载数据卷是一种将主机文件系统上的目录或文件与容器内部的路径进行关联的方式。通过绑定挂载数据卷,可以实现在容器内部访问主机上的文件或目录,同时也可以实现数据的持久化存储和共享

下面是关于绑定挂载数据卷的详细解释:

绑定挂载数据卷的语法:

在使用 docker run 命令时,通过 -v 参数可以指定绑定挂载数据卷。语法如下:

docker run -v /host/path:/container/path your_image

其中:

  • /host/path 是主机文件系统上的路径,可以是目录或文件。
  • /container/path 是容器内部的路径,用于表示将主机路径挂载到容器内部的位置。
  • your_image 是要运行的 Docker 镜像名称。

绑定挂载数据卷的特点:

  1. 数据共享:主机上的数据可以与容器共享,容器对数据的修改也会反映在主机上。
  2. 持久性:通过绑定挂载数据卷,数据不会随容器的删除而丢失,保证了数据的持久化存储。
  3. 灵活性:可以根据需要选择需要共享的主机路径,并将其挂载到容器内部的指定位置。

示例:

假设要将主机上的 /data 目录绑定挂载到容器内的 /app/data 目录,可以使用以下命令:

docker run -v /data:/app/data your_image

这样,在容器内部就可以通过 /app/data 路径来访问主机上的 /data 目录。

绑定挂载数据卷是 Docker 中常用的数据管理方式,它使得容器可以方便地访问主机上的数据,实现了数据的持久化存储和共享,提高了应用的灵活性和可维护性。

数据卷容器

要在多个容器之间共享一些持续更新的数据卷,也可以使用数据卷容器,也就是创建一个容器专门用于存储另一个容器所需要的数据。

  • 创建一个数据卷容器dbdata:
$ docker run -it  -v  /dbdata:/dbdata  --name dbdata ubuntu

[1]这个命令将主机上的 “/dbdata” 目录挂载到容器内部的 “/dbdata” 目录中,并以交互模式启动一个名为 “dbdata” 的 Ubuntu(镜像) 容器。

  • 其他容器中使用–volumes-from参数来挂载数据卷
$ docker run -it  --volumes-from  dbdata --name db1 ubuntu

[1]这个命令创建一个名为 “db1” 的容器,它会从名为 “dbdata” 的容器中挂载卷,并使用 Ubuntu 镜像来运行这个容器
这条命令的作用是:

  • docker run: 启动一个新的容器
  • -it: 分配一个伪终端(pseudo-TTY),并保持标准输入开启,以便你可以与容器进行交互
  • --volumes-from dbdata: 从另一个容器中挂载卷。在这里,dbdata 是另一个容器的名称,该容器应该已经创建并且包含了需要共享的数据卷
  • --name db1: 为新创建的容器指定一个名称,这里的容器名称是 db1
  • ubuntu: 指定要基于的镜像,这里使用的是 Ubuntu 镜像来运行这个新容器。

总的来说,这条命令的作用是在一个新容器中启动一个 Ubuntu 镜像,并从现有容器 dbdata 中挂载卷,使得新容器可以访问和共享 dbdata 容器中的数据卷。

$ docker run -it  --volumes-from  dbdata --name  db2 ubuntu

这条命令与前面的命令类似,它的作用是:

  • docker run: 启动一个新的容器
  • -it: 分配一个伪终端(pseudo-TTY),并保持标准输入开启,以便你可以与容器进行交互
  • --volumes-from dbdata: 从名为 “dbdata” 的容器中挂载卷,这意味着新的容器将能够访问 “dbdata” 容器中的数据卷
  • --name db2: 为新创建的容器指定一个名称,这里的容器名称是 “db2”
  • ubuntu: 指定要基于的镜像,这里使用的是 Ubuntu 镜像来运行这个新容器。

总的来说,这条命令的作用是在一个新容器中启动一个 Ubuntu 镜像,并从现有容器 dbdata 中挂载卷,使得新容器可以访问和共享 “dbdata” 容器中的数据卷。

`

  • 29
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值