资讯专栏INFORMATION COLUMN

Docker学习之数据管理(5)

DesGemini / 2193人阅读

摘要:下面创建一个名为的容器,并加载一个数据卷到容器的目录。如果需要在删除容器的同时移除数据卷。

容器内部以及容器之间的数据管理是怎么样进行的?

其实在 Docker 内部以及容器之间管理数据,在容器中管理数据主要有两种方式:

数据卷(Volumes)

挂载主机目录 (Bind mounts)

数据卷

数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:

数据卷可以在容器之间共享和重用

对数据卷的修改会立马生效

对数据卷的更新,不会影响镜像

数据卷默认会一直存在,即使容器被删除

注意: 数据卷 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的 数据卷 。

既然数据卷可以对容器的数据进行管理,那么该怎么去创建和使用数据卷呢?

数据卷操作 创建数据卷

可以通过命令docker volume create 数据卷的名称来创建一个数据卷,如:

从上图中可以看出我们创建的数据卷my-vol已经存在了。
然后可以通过docker volume create 数据卷的名称来查看具体的某个数据卷的信息,如:

启动一个挂载数据卷的容器

在用 docker run 命令的时候,使用 --mount 标记来将 数据卷 挂载到容器里。在一次 docker run 中可以挂载多个 数据卷 。下面创建一个名为 web 的容器,并加载一个 数据卷 到容器的 /webapp 目录。

docker run -d -P 
--name web 
# -v my-vol:/wepapp 
--mount source=my-vol,target=/webapp 
training/webapp 
python app.py
查看数据卷的具体信息

在主机里使用以下命令可以查看 web 容器的信息

$ docker inspect web

数据卷 信息在 "Mounts" Key 下面

"Mounts": [
{
"Type": "volume",
"Name": "my-vol",
"Source": "/var/lib/docker/volumes/my-vol/_data",
"Destination": "/app",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
删除数据卷
docker volume rm my-vol

数据卷 是被设计用来持久化数据的,它的生命周期独立于容器,Docker 不会在容器被删除后自动删除 数据卷 ,并且也不存在垃圾回收这样的机制来处理没有任何容器引用的 数据卷 。如果需要在删除容器的同时移除数据卷。可以在删除容器的时候使用 docker rm -v 这个命令。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27904.html

相关文章

  • Docker习之搭建MySql容器服务

    摘要:描述数据库服务器镜像,此容器映像包含用于的数据库服务器和一般用法。用户可以选择和基于的图像。然后镜像可以在上以的形式获得。 描述 MySQL 5.6 SQL数据库服务器Docker镜像,此容器映像包含用于OpenShift的MySQL 5.6 SQL数据库服务器和一般用法。用户可以选择RHEL和基于CentOS的图像。然后CentOS镜像可以在Docker Hub上以centos / ...

    xingqiba 评论0 收藏0
  • Docker习之Docker Swarm

    摘要:是官方三剑客项目之一,提供容器集群服务,是官方对容器云生态进行支持的核心方案。工作节点是任务执行节点,管理节点将服务下发至工作节点执行。 Docker Swarm 是 Docker 官方三剑客项目之一,提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。使用它,用户可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容...

    DobbyKim 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<