容器之间的数据共享技术, Docker容器产生的数据同步到本地

卷技术 --> 目录挂载, 将容器内的目录挂载到服务器上

使用命令来挂载 -v

# 可以挂载多个目录
docker run -it -v 主机目录地址:容器内目录地址 # 测试
docker run -it -v /root/temp:/home centos /bin/bash linux主机的temp目录就和容器的home目录的操作是双向绑定了
删除容器并不会删除linux主机的数据

测试挂载Mysql

启动mysql是需要配置密码的
# 官方测试
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mypassword -dmysql:tag # 自己运行容器挂载目录
-v 卷挂载
-e 环境配置
docker run -d -p 3310:3306 -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

具名和匿名挂载

# 匿名挂载
-P 随机映射端口
docker run -d -P --name nginx01 -v /etc/nginx nginx # 具名挂载
-v 挂载名:容器内路径
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx # 卷操作
docker volume --help
create Create a volume
inspect Display detailed information on one or more volumes
ls 查看所有卷
prune Remove all unused local volumes
rm Remove one or more volumes # docker volume ls
local 39381d9f3555d38c6c24dcb0d3e7d6813b7e869e4c1a0f4e0a24c128dd483148 # 匿名挂载
local juming-nginx # 具名挂载 # 查看卷 docker volume inspect 卷id/卷名
docker volume inspect juming-nginx
[
{
"CreatedAt": "2020-08-29T13:35:12+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data",
"Name": "juming-nginx",
"Options": null,
"Scope": "local"
}
]
所有容器内的卷, 在没有指定目录的情况下都可以在这查看: `/var/lib/docker/volumes/xxx/_data`

扩展

# -v 容器内路径:ro rw 设置读写权限 默认是 rw
:ro readonly 只读
:rw readwrite 可读可写
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx # ro 路径只能通过宿主机来操作, 容器内无法操作

数据卷容器

--volumes-from 容器名

# 通过 --volumes-from 容器名/id 来同步docker01的数据卷
--volumes-from 容器名/id # 同步这个容器的数据卷
docker run -it --name docker02 --volumes-from docker01 jiawei-centos:1.0 多个容器通过 --volumes-from 绑定的容器之间是双向绑定的, 删除`数据卷容器`不会影响其他容器, 其他容器他们还是绑定的 # 就是把所有关联的容器都停止了, 才会结束
结论: 数据卷容器的生命周期会一直持续到没有容器使用为止

docker 数据卷的挂载和使用的更多相关文章

  1. Docker 数据卷重复挂载测试

    没想到一年没写博客了,这中间都是记在自己的笔记本上,大部分网上都有,这个好像没有,所以发上来吧! 本文是测试Docker容器(相同目录/父子目录)同时挂载到宿主机(同目录/不同目录)时的情况,废话少说 ...

  2. docker数据卷技术

    数据卷技术 数据卷手动挂载 数据卷容器 part1:数据卷挂载方式 数据卷手动挂载 -v 主机目录:容器目录 #核心参数 #示例 docker run -it --name=centos_test - ...

  3. docker数据卷挂载

    docker数据卷挂载笔记 我们的服务运行时必不可少的会产生一些日志,或是我们需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 容器中管理数据主要有两种方式: ...

  4. docker 数据卷之进阶篇

    笔者在<Docker 基础 : 数据管理>一文中介绍了 docker 数据卷(volume) 的基本用法.随着使用的深入,笔者对 docker 数据卷的理解与认识也在不断的增强.本文将在前 ...

  5. Docker 数据卷

    数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 卷会一直存在,直到没有容 ...

  6. Docker 数据卷和数据卷容器

    1.本节课主要讲解如何在Docker内部及容器之间管理数据.容器中管理数据主要有两种方式:数据卷(Data volumes)数据卷容器(Data volume containers) 2.数据卷:是一 ...

  7. docker数据卷管理及网络基础配置

    数据卷 数据卷容器 数据卷迁移数据 端口映射 容器间通信 数据卷的管理 当需要查看容器内应用产生的数据或者把容器内数据备份及多个容器数据共享.有两种方式,数据卷以及数据卷容器. 数据卷 数据卷是一个可 ...

  8. docker 数据卷 ---- 进阶篇

    笔者在<Docker 基础 : 数据管理>一文中介绍了 docker 数据卷(volume) 的基本用法.随着使用的深入,笔者对 docker 数据卷的理解与认识也在不断的增强.本文将在前 ...

  9. 实例解析Docker数据卷+数据卷容器+flocker数据共享+DockerHub操作

    Docker内部数据管理和Docker之间的数据共享为数据卷和数据卷容器,实例解析1.将本地的文件作为容器的数据卷,2.数据卷flocker插件实现容器集群(或者Docker Swarm)的数据共享3 ...

随机推荐

  1. Happens-Before原则到底规定了什么

    Happens-Before 规则 如何理解 Happens-Before 呢?如果望文生义(很多网文也都爱按字面意思翻译成"先行发生"),那就南辕北辙了,Happens-Befo ...

  2. Oracle数据导入Mysql中

    一.Navicat Premium中的数据迁移工具 为了生产库释放部分资源,需要将API模块迁移到mysql中,及需要导数据. 尝试了oracle to mysql工具,迁移时报错不说,这么大的数据量 ...

  3. 移动端 Swiper

    一.什么是swiper 开源.免费.强大的触摸滑动插件 Swiper常用于移动端网站的内容触摸滑动 Swiper能实现触屏焦点图.触屏Tab切换.触屏多图切换等常用效果 #二.如何使用 1.首先加载插 ...

  4. Python将文件夹下的文件名写入excel方便统计

    如题,贴代码: 1 ''' 2 #python将某文件夹下的文件名存储到excel中 3 ''' 4 5 #导入所需模块 6 import os 7 import xlwt 8 9 #定义要处理的文件 ...

  5. 使用Ubuntu手动安装NextCloud

    p.p1 { margin: 0; font: 11px Menlo; color: rgba(0, 0, 0, 1) } span.s1 { font-variant-ligatures: no-c ...

  6. cmd运行乱码或显示编码GBK的不可映射字符解决方法

    出现这样的错误,一般是因为代码中含有中文字符,注释中的中文字符也算.由于使用cmd运行java程序的时候,系统默认的编码格式是gbk.而包含中文字符的代码一般是Unicode格式,所以直接运行含有中文 ...

  7. Java虚拟机详解04----GC算法和种类

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. [转载]Mybatis Generator最完整配置详解

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  9. [leetcode712]204. Count Primes寻找范围内的素数

    厄拉多塞筛选法,就是哈希表记录素数的倍数 public int countPrimes(int n) { /* 牛逼哄哄的厄拉多塞筛选法 就是从2开始,每找到一个素数,就把n以内的这个数的倍数排除 记 ...

  10. Java Queue 队列

    队列是一种先进先出的数据结构,队列中插入元素和删除元素分别位于队列的两端. 在Java中 队列实现类众多,本文不再赘述.本文探讨的是如何自定义队列实现类: 基于数组方式实现队列: 注意点: 当出队时队 ...