Docker入门-数据挂载
Docker数据管理
在容器中管理数据主要有两种方式:
- 数据卷(Volumes)
- 挂载主机目录(Bind mounts)
数据卷
数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性:
- 数据卷可以在容器之间共享和重用
- 对数据卷的修改会立马生效
- 对数据卷的更新,不会影响镜像
- 数据卷默认会一直存在,即使容器被删除
注意: 数据卷的使用,类似于Linux下对目录或文件进行mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的数据卷。
Docker中提供了两种挂载方式,-v和-mount
Docker新用户应该选择 --mount参数
经验丰富的Docker使用者对-v或者--volume已经很熟悉了,但是推荐使用-mount参数。
创建一个数据卷
docker volume create my-volume
查看指定数据卷的信息
docker volume inspect my-volume
启动一个挂载数据卷的容器:
在用docker run命令的时候,使用--mount标记来将数据卷挂载到容器里。
创建一个名为session-web的容器,并加载一个数据卷到容器中的/webapp目录。
# 方法一 docker run --name session-web -d -p 8888:8080 --mount source=my-volume,target=/webapp session-web:latest # 方法二 docker run --name session-web -d -p 8888:8080 -v my-volume:/webapp session-web:latest
删除数据卷
docker volume rm my-volume
数据卷是被设计用来持久化数据的,它的生命周期独立于容器,Docker不会在容器被删除后自动删除数据卷,并且也不存在垃圾回收这样的机制来处理没有任何容器引用的数据卷。
如果需要在删除容器的同时移除数据卷。可以在删除容器的时候使用docker rm -v这个命令。
无主的数据卷可能会占据很多空间,要清理请使用以下命令
docker volume prune
挂载主机目录
使用--mount标记可以指定挂载一个本地主机的目录到容器中去
# 方法一 docker run --name session-web -d -p 8888:8080 \ -v my-volume:/webapp \ session-web:latest # 方法二 docker run --name session-web -d -p 8888:8080 \ --mount type=bind,source=/src/webapp,target=/opt/webapp session-web:latest
上面的命令加载主机的/src/webapp目录到容器的/opt/webapp目录。这个功能在进行测试的时候十分方便,比如用户可以放置一些程序到本地目录中,来查看容器是否正常工作。
本地目录的路径必须是绝对路径
以前,使用-v参数时如果本地目录不存在Docker会自动为你创建一个文件夹。
现在,使用--mount参数时如果本地目录不存在,Docker会报错。Docker挂载主机目录的默认权限是读写,用户也可以通过增加readonly指定为只读。
挂载一个本地主机文件作为数据卷
--mount标记也可以从主机挂载单个文件到容器中
# 方法一 docker run --rm -it \ --mount type=bind,source=#HOME/.bash_history,target=/root/.bash_history \ ubuntu:17.10 bash # 方法二 docker run --rm -it \ -v $HOME/.bash_history:/root/.bash_history \ ubuntu:17.10 bash
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云优惠券领取 购买云服务器ECS最新有优惠
在为数不多的国内云服务品牌当中,阿里云素来就有基建狂魔的美誉! 它直接面向数量众多的中小微企业并为其赋能,同时发力于商业、物联领域内的基础设施,致力于通过先进的云技术来实施惠及全球的使命!“目前,阿里云在新金融、新零售以及新数据等战略节点上极具优势,无疑正在布局云服务未来应用前景!”阿里云服务器教程网负责人表示说。 此时阿里云最新优惠优那些呢 【30%-40%高返佣】8月特惠 限时2折 【主机爆款特惠】限时优惠 低至3折 我的奖励:从2009年开始,短短的五年时间里,阿里云的飞天系统就闻名遐迩。无论是如火如荼的国内电商体系,还是遍布神州大地的金融系统,飞天自始自终都在扮演着一个服务于社会综合业务的云计算角色!尤其是从2015年开始,阿里云大力实施生态战略计划,率先在国内建立起全方位的生态系统,包括阿里云的云大使计划正是在此背景下诞生。 身为官方云大使兼阿里云服务器教程网的负责人,在介绍阿里云生态战略时表示:“阿里云生态战略目标分为两大目标,其一就是面向大型企业的专用云,其二就是面向中小企业的公共云,唯有达成此两大目标,方能真正满足各行各业提速发展的云上业务需求!” 正是在这种锐意进取的...
- 下一篇
Docker之- 使用Docker 镜像和仓库
Docker之- 使用Docker 镜像和仓库目录 使用Docker 镜像和仓库什么是 Docker 镜像列出 Docker 镜像tag 标签Docker Hub拉取镜像查找镜像构建镜像创建Docker Hub 账号使用 Docker 的commit 命令创建镜像使用 Dockerfile 构建镜像基于 Dockerfile 构建新镜像指令失败时呢?Dockerfile 和构建缓存基于构建缓存的 Dockerfile 模版查看新镜像从新镜像启动容器Dockerfile 指令将镜像推送至 Docker Hub删除镜像总结使用Docker 镜像和仓库上一篇文章中,我们学习了包括 docker run 在内的许多对容器进行操作的基本指令,那么在本节中,我们主要探讨 Docker 镜像的一些概念,比如什么是镜像,如何对镜像进行管理,如何修改镜像,如何创建、存储、共享自己创建的镜像等,那么就开始我们的学习 什么是 Docker 镜像Docker 镜像是由文件系统叠加而成,最底端是一个引导文件系统,也就是bootfs,这很像典型的 Linux/Unix 的引导文件系统。Docker 用户永远不会和...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题