Docker的数据卷

数据卷

1.数据卷概述

数据卷:容器与宿主机之间数据共享

数据卷是一个供容器使用的特殊目录,位于容器中。
可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。
数据卷的使用类似于Linux下对目录进行的mount操作。 

想要将容器中的数据持久化,可以将宿主机目录挂载到容器中
一般只建议在创建容器时进行挂载,不建议启动容器后再挂载。
因为启动容器后再挂载的话,需要修改配置文件,且不一定能挂载成功。

2.实操

docker run -v 数据卷
#在容器内创建数据卷docker run -v 宿主机目录:数据卷
#将宿主机目录挂载到容器中#注意:宿主机本地目录的路径必须是使用绝对路径。如果路径不存在,Docker会自动创建相应的路径。
#挂载后的目录默认可读可写例:docker run -itd --name test1 -v /opt/test1:/opt/test1 centos:7 /bin/bash
#创建一个容器卷,和宿主机的的目录挂载,目录自带读写权限。

docker run -v 宿主机目录:数据卷:ro
#将宿主机目录挂载到容器中,只可读例:docker run -itd --name test2 -v /opt/test2:/opt/test2:ro centos:7 /bin/bash

数据卷容器

1.数据卷容器概述

数据卷容器:容器与容器之间数据共享

数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用

2.实操

docker run -itd --name test1 -v /opt/data1 -v /opt/data2 centos:7 /bin/bash
#创建数据卷容器test1,以及/opt/data1和/opt/data2两个数据卷docker run -itd --volumes-from test1 --name test2 centos:7 /bin/bash
#创建容器使用挂载卷

容器互联

1.容器互联概述

容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。
简单点说,就是会在源容器和接收容器之问建立一条隧道,接收容器可以看到源容器指定的信息。

2.实操

//老版本
docker run -itd -P --name test1 centos:7 /bin/bash
#创建并运行源容器test1,-P:随机指定一个端口,和宿主机映射  docker run -itd -P --name test2 --link test1:test2 centos:7 /bin/bash
#创建并运行接收容器test2,--link和源容器test1实现容器互联docker exec -it test2 bash
ping test1docker exec -it test1 bash
yum install -y net-tools   #下载网络工具
ifconfig                   #查看IP和test2中显示的一致

//新版本
docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name"="docker1"  mynetwork
#创建一个网段docker run -itd -P --name test11 --network=mynetwork centos:7 /bin/bashdocker run -itd -P --name test12 --network=mynetwork centos:7 /bin/bash
#创建两个容器,指定网段#进入容器ping test11 test22

实验

部署一个MySQL镜像,创建一个MySQL容器,用navicat实现可以直接访问容器的MySQL。MySQL宿主机:33066
MySQL容器:3306

创建一个数据卷。在宿主机可以看到容器内MySQL的日志文件。

#获取镜像
docker pull mysql:5.7.20#创建并持续运行容器
docker run -itd -p 33066:3306 -v /opt/my_log:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7.20#进入容器
docker exec -it mysql bash#容器内进入数据库
mysql -uroot -p123456#本机mysql远程登陆测试
[root@pup1 ~]# mysql -u root -p -P 33066 -h 20.0.0.10

#在容器的数据库中查询

#开启日志
set global general_log=on;
show variables like "general_log%";

#容器中数据库新建库以测试日志同步情况
create database test2;
show databases;

#宿主机日志已同步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/255900.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring基于注解存储对象

小王学习录 前言基于注解存储对象Controller (控制器存储)Service (服务存储)Repository (仓库存储)Component (组件存储)Configuration (配置存储)Bean(方法注解) 前言 上一篇文章中已经介绍了在Spring中存储Bean和取Bean的方法. 而在 Spring 中想要更简单的存储和读取对象的…

micro_ros_setup包镜像及部分注释(我觉得此包支持很有限)

GitHub - micro-ROS/micro_ros_setup at humble README.md This ROS 2 package(这是一个包) is the entry point for building micro-ROS apps for different embedded platforms. Supported platforms Standalone build system toolsDependenciesQuick startBuilding Creati…

C++多态(详解)

一、多态的概念 1.1、多态的概念 多态:多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。 举个例子:比如买票这个行为,当普通人买票时,是全价买票;学生买票时&am…

100. 相同的树(Java)

目录 解法: 官方解法: 方法一:深度优先搜索 复杂度分析 时间复杂度: 空间复杂度: 方法二:广度优先搜索 复杂度分析 时间复杂度: 空间复杂度: 给你两棵二叉树的根节点 p 和…

【日常总结】mybatis-plus WHERE BINARY 中文查不出来

目录 一、场景 二、问题 三、原因 四、解决方案 五、拓展(全表全字段修改字符集一键更改) 准备工作:做好整个库备份 1. 全表一键修改 Stage 1:运行如下查询 Stage 2:复制sql语句 Stage 3:执行即可…

了解Linux网络配置

本章主要介绍网络配置的方法。 网络基础知识 查看网络信息 图形化界面修改 通过配置文件修改 命令行管理 11.1 网络基础知识 一台主机需要配置必要的网络信息,才可以连接到互联网。需要的配置网络信息包括IP、 子网掩码、网关和 DNS。 11.1.1 IP 地址 在计算机…

一文3000字从0到1用Python进行gRPC接口测试!

gRPC 是一个高性能、通用的开源RPC框架,其由 Google 主要面向移动应用开发并基于HTTP/2 协议标准而设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言。 自gRPC推出以来,已经广泛应用于各种服务之中。在测…

Python 作业答疑

1. 哥德巴赫猜想 问题描述: 2000以内的不小于4的正偶数都能够分解为两个素数之和(即验证歌德巴赫猜想对2000以内的正偶数成立)。 问题分析: 根据问题描述,为了验证歌德巴赫猜想对2000以内的正偶数都是成立的&#…

Android 11 适配——整理总结篇

背景 > 经过检测,我们识别到您的应用,目前未适配安卓11(API30),请您关注适配截止时间,尽快开展适配工作,避免影响应用正常发布和经营。 > targetSdkVersion30 升级适配工作参考文档&am…

SRC挖掘漏洞XSS

Markdown是一种轻量级标记语言,创始人为约翰格鲁伯(John Gruber)。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的…

Hadoop学习笔记(HDP)-Part.20 安装Flume

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

鸿蒙开发ArkTS语言—状态管理概述

概述 我们构建的页面多为静态界面。如果希望构建一个动态的、有交互的界面,就需要引入“状态”的概念。 图1 效果图 上面的示例中,用户与应用程序的交互触发了文本状态变更,状态变更引起了UI渲染,UI从“Hello World”变更为“Hel…