docker 应用数据的管理之bind mounts

创建容器使用bind mounts 挂载文件系统。宿主机文件系统会覆盖掉容器里初始数据

[root@localhost ~]# mkdir /www/htpm -pv
mkdir: 已创建目录 "/www"
mkdir: 已创建目录 "/www/htpm"

[root@localhost ~]# docker run -d --name web-7 -p 82:80 --mount type=bind,src=/www/htpm,dst=/usr/share/nginx/html nginx
814082b3448bac40f12fbce6f9f207032d76bf284d8c633a5c7b29788d6e6d85
[root@localhost ~]# ls /www/htpm/
[root@localhost ~]# docker exec -it web-7 bash
root@814082b3448b:/# cd /usr/share/nginx/html/
root@814082b3448b:/usr/share/nginx/html# ls
root@814082b3448b:/usr/share/nginx/html#
root@814082b3448b:/usr/share/nginx/html# mkdir l
root@814082b3448b:/usr/share/nginx/html# echo "chenxi" > index.html
root@814082b3448b:/usr/share/nginx/html# ls
index.html  l
root@814082b3448b:/usr/share/nginx/html# exit
exit

[root@localhost ~]# ls /www/htpm/
index.html  l

  

使用另一种方式挂载

[root@localhost ~]# docker run -d --name web-c -p 91:80  -v /www:/opt nginx
9eb50928c53e83b9804862b6441d22fc8a27a4963bd025cd8af41e3922e8e704
[root@localhost ~]# ls /www/
htpm
[root@localhost ~]# docker run
centos         centos:latest  nginx          nginx:latest   nginx:web4
[root@localhost ~]# docker exec -it web-c bash
root@9eb50928c53e:/# ls /opt/
htpm
root@9eb50928c53e:/# ls /opt/htpm/
index.html  l
root@9eb50928c53e:/#

volume 与bind mounts 的区别

volume 特点

运行多个容器之间共享数据

当容器被移除时,该卷依旧存在

多容器可以同时挂载相同的卷

当明确删除时卷才会被删除

将容器数据存储在远程数据或其他主机上

将数据从一台docker主机迁移到另一台是,先停止容器,然后备份卷的目录

bind mounts的特点

从主机共享文件到容器。默认情况下。挂载主机/etc/resolv.conf 到每个容器。提供dns解析

在docker主机上的开发环境和容器之间共享源代码。例如,可以将maven target 目录挂载到容器中,每次docker主机构建项是maven项目时,容器都可以访问构建的项目包

当docker主机文件或目录结构包证与容器所需的绑定挂载一致时

原文地址:https://www.cnblogs.com/rdchenxi/p/10421693.html

时间: 2024-11-07 23:44:30

docker 应用数据的管理之bind mounts的相关文章

docker从零开始 存储(三)bind mounts

使用bind mounts 自Docker早期以来bind mounts 一直存在.与volumes相比,绑定挂载具有有限的功能.使用bind mounts时,主机上的文件或目录将装入容器中.文件或目录由其在主机上的完整路径或相对路径引用.相反,当您使用卷时,会在主机上的Docker存储目录中创建一个新目录,Docker会管理该目录的内容. 该文件或目录不需要已存在于Docker主机上.如果它尚不存在,则按需创建.绑定挂载非常高效,但它们依赖于具有特定目录结构的主机文件系统.如果您正在开发新的D

docker 应用数据的管理

容器数据存储的三种方式 docker volume docker管理素质及文件系统的一部分,保存数据最佳方式 bind mounts   将宿主机的文件映射到容器里 tmpfs   存储在宿主机的内存里 查看docker 的默认存储驱动 Containers: 9 Running: 5 Paused: 0 Stopped: 4 Images: 3 Server Version: 18.09.2 Storage Driver: overlay2 默认存储驱动 Backing Filesystem:

docker的数据卷管理

mkdir  -p  /data/volumes 挂载目录 [[email protected] ~]# docker run -d  --name nginx-volumes   -v  /data/volumes:/data  nginx  1263f51d5bd1114c7f1582a0efb68266ce367629f01a64693cd15cf115165392 本地的  /data/volumes   挂载到容器的/data  目录下 3.进入容器写文件测试 [[email prot

Docker学习第三天(Docker数据卷管理)

1.Docker数据卷管理 在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中.目前Docker提供了三种不同的方式将数据从宿主机挂载到容器中: 1.volumes:Docker管理宿主机文件系统的一部分(默认文件位置:/var/lib/docker/volumes) 常用 由上图可知我们到了 /var/lib/docker/volumes 目录下有的文件名很长这时匿名 二有的则是我们创建时制定的 2.

[docker]动态挂卷与数据卷管理

声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! 动态挂卷 目前docker不支持动态挂卷.有同事就提出,以下方法是否可行:1. 将块设备通过ln链接到容器与host的映射目录.2. 将块设备挂载到容器与host的映射目录. 以下是实验过程:由于非特权无法看到/dev下的设备,因此ln链接实际是无效的. 同理,对于其他块设备,也是这样的.当然,我们可以配置privileged

Docker之七:Docker数据卷管理

容器数据持久化 1.数据卷:将本地磁盘mount进入容器-v /dest-v src:dst [ro]|[rw] 2.数据卷容器:将外部容器分享给容器--volumes-from数据卷容器专门用来挂载数据卷的容器,以供其他容器引用和使用 3.数据卷管理命令docker volume 一.数据卷:1.给容器内部映射一个外部数据卷 -v src:dest[[email protected] nginx]# docker run -d --name web1 -v /opt/nginx:/usr/sh

Docker入门-数据挂载

Docker数据管理 在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录(Bind mounts) 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 数据卷默认会一直存在,即使容器被删除 注意: 数据卷的使用,类似于Linux下对目录或文件进行mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的数据卷. Docker中提

将Docker主机数据挂在到容器中

dcoker 提供三种不同的方式将数据从宿主机挂载到容器中:volumes,bind mounts, tmpfs.volumes: Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)bind mounts: 存储在宿主机系统的任意位置,主要是将宿主机上的某个文件目录挂在到docker下供数据存储.tmpfs:挂载存储在宿主机系统的内存中,不会写入宿主机的文件系统. 管理卷:docker volume create tomcat8081docker volum

Docker实现数据持久化

由于Docker技术的火爆,以至于现在大大小小的公司都在使用Docker.对Docker熟悉的朋友都明白DOcker容器运行是有生命周期的,如果docker容器发生故障,那么就意味着容器中的数据也将丢失.那么对于企业来说的话,数据是重要的!如何做到对docker容器中的数据持久化就是运维人员需要考虑的问题了!本篇博文将了解如何对容器中的数据进行持久化! 在了解Docker数据持久化之前,需要对Docker的存储类型有一个简单的了解,执行以下命令即可看出: [[email protected] ~