docker---数据卷

news2024/11/25 19:22:27

数据卷(数据共享)

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

想要将容器中的数据持久化,可以将宿主机目录挂载到容器中。

一般只建议在创建容器时进行挂载,不建议启动容器后再挂载。因为启动容器后再挂载的话,需要修改配置文件,且不一定能挂载成功。
 

 docker run -v 数据卷              #在容器内创建数据卷
 ​
 docker run -v 宿主机目录:数据卷    #将宿主机目录挂载到容器中
 #注意:宿主机本地目录的路径必须是使用绝对路径。如果路径不存在,Docker会自动创建相应的路径。
 #挂载后的目录默认可读可写
 

创建一个容器的挂载卷
docker run -itd --name test1 -v /opt/test1:/opt/test centos:7 /bin/bash

现在创建文件来查看数据是否同步

如何创建只读文件

docker run -itd --name test2 -v /opt/test2:/opt/test:ro centos:7 /bin/bash
cd /opt/test2
echo "zzz" > 123.txt
docker exec -it test2 bash
cd /opt/test
cat 123.txt
touch 456
//无法创建,只读
echo "123" > 123.txt
//无法创建,只读

容器和容器之间实现数据共享

test1 test2 可以有一个或者多个映射目录,实现数据互传,数据同步。

数据卷容器:只提供挂载点,在另一方收集数据。

cd /opt/test2
docker run -itd --name test11 -v /opt/data1 -v /opt/data2 centos:7 /bin/bash

data1  data2都是容器

docker exec -it test11 bash
cd /opt
ls
data1 data2

exit

docker run -itd --volumes-from test11 --name test12 centos:7 /bin/bash

docker exec -it test11 bash 
cd /opt/data1
echo 123 > 123
cd data2
echo 456 > 456

另一个终端
docker exec -it test12 bash
cd /opt
cd data1
cd data2
查看

容器间数据共享

容器互联(网络通信)

容器互联有老版本和新版本,老版本虽然已经被淘汰,但是为了作为区分在这里也演示一下

老版本

docker run -itd -P --name test111 centos:7 /bin/bash
docker ps



docker run -itd -P --name test222 --link test111:test222 centos:7 /bin/bash
docker ps
docker exec -it test111 bash
yum -y install net-tools
此时可以打开ifconfig

docker exec -it test222 bash
yum -y install net-tools


ping test222

vi /etc/hosts
查看
有映射才能ping通

新版本

用network指定-----自定义网络

docker -itd -P --name test112 --network=mynetwork centos:7 /bin/bash

docker -itd -P --name test113 --network=mynetwork centos:7 /bin/bash

docker exec -it test112 bash
yum -y install net-tools

docker exec -it test113 bash
yum -y install net-tools

用network模式不需要做映射

接下来有个相关项目

部署一个mysql的镜像,创建一个mysql的容器,用navicat可以直接访问容器的mysql,mysql端口的映射端口--》 33066--3306

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

部署

首先拉取mysql镜像,注意,要拉取mysql:5.7.20的镜像
Docker pull mysql:5.7.20
不能是 docker pull mysql。因为最新的8.2.0版本有很多不兼容,实验无法成功。

报错演示↓

接下来运行,启动容器

docker run -itd -p 33066:3306 -v /opt/my_log:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7.20

-p 33066:3306   自定义指定端口

/opt/my_log:/var/lib/mysql   文件同步位置,前者为宿主机,后者为容器

 -e MYSQL_ROOT_PASSWORD=123456  指定密码

--name mysql mysql:5.7.20   指定镜像

接下来进入容器

docker exec -it mysql bash

然后开启日志

具体日志文件如图所示

去宿主机查看日志

也可以用navicat连接

实验完成

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TCP协议一对一聊天UDP协议群聊

一对一聊天 服务端: package 一对一用户;import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; …

进行生成简单数字图片

1.之前只能做一些图像预测,我有个大胆的想法,如果神经网络正向就是预测图片的类别,如果我只有一个类别那就可以进行生成图片,专业术语叫做gan对抗网络 2.训练代码 import torch import torch.nn as nn import torch.optim as optim import torchvision.transforms as transfo…

排序分析(Ordination analysis)及R实现

在生态学、统计学和生物学等领域,排序分析是一种用于探索和展示数据结构的多元统计技术。这种分析方法通过将多维数据集中的样本或变量映射到低维空间,以便更容易理解和可视化数据之间的关系。排序分析常用于研究物种组成、生态系统结构等生态学和生物学…

java--枚举

1.枚举 枚举是一种特殊类 2.枚举类的格式 注意: ①枚举类中的第一行,只能写一些合法的标识符(名称),多个名称用逗号隔开。 ②这些名称,本质是常量,每个常量都会记住枚举类的一个对象。 3.枚举类的特点 ①枚举类的…

Java 第21章 网络通信

网络程序设计基础 网络程序设计编写的是与其他计算机进行通信的程序。Java 已经将网络程序所需要的元素封装成不同的类,用户只要创建这些类的对象,使用相应的方法,即使不具备有关的网络支持,也可以编写出高质量的网络通信程序。 …

JPA(Java Persistence API)是什么

JPA的官网地址:https://jcp.org/en/jsr/detail?id338 当前最新的版本是2.2版本:https://jcp.org/aboutJava/communityprocess/mrel/jsr338/index.html JPA是一个Java持久化的API,通过这个API,在Java EE和Java SE 环境中管理持…

鸿蒙开发ServiceAbility基本概念

时间过长,开发者必须在Service里创建新的线程来处理(详见线程间通信),防止造成主线程阻塞,应用程序无响应。 创建Service 介绍如何创建一个Service 创建Service的代码示例如下:查看获取鸿蒙开发 (qq.com)…

HTTP 缓存机制

一、强制缓存 只要浏览器判断缓存没有过期,则直接使用浏览器的本地缓存而无需再请求服务器。 强制缓存是利用下面这两个 HTTP 响应头部(Response Header)字段实现的,它们都用来表示资源在客户端缓存的有效期: Cache…

ChatGPT学习笔记

1 ChatGPT架构图 (ChatGPT_Diagram.svg来自于【OpenA | Introducing ChatGPT】) 2 模型训练 ChatGPT在训练时使用了PPO方法;

pandas空格及网页空格符NBSP替换处理

df3[动作一课程内容]df3[动作一课程内容].str.replace( ,) df3[动作一课程内容]df3[动作一课程内容].str.replace( ,) 截图中代码为python展示代码,由于网页空格符和常规空格符看起来大致相同,但却不能用常规空格替换解决

基于个微机器人的开发

简要描述: 下载消息中的动图 请求URL: http://域名/getMsgEmoji 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明…

树莓派4B iio子系统 mpu6050

编写基于iio的mpu6050 遇到的问题,在读取数据时,读出来的数据不能直接拼接成int类型 需要先将其转换成short int,再转换成int 效果如图所示 注:驱动是使用的modprobe加载的 画的思维导图(部分,上传的…

预付费远传水表和传统水表有什么不同?

随着科技的发展,预付费远传水表作为一种新型智能水表,与传统水表相比有着许多不同之处。那么,预付费远传水表和传统水表究竟有什么不同呢? 首先,预付费远传水表具备智能化功能。与传统水表只能记录用水总量不同&#x…

代码随想录算法训练营第五十七天【动态规划part17】 | 647. 回文子串、516.最长回文子序列

647. 回文子串 题目链接 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 求解思路 动规五部曲 1.确定dp数组及其下标含义 布尔类型的dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串&#…

springboot 整合 Spring Security 中篇(RBAC权限控制)

1.先了解RBAC 是什么 RBAC(Role-Based Access control) ,也就是基于角色的权限分配解决方案 2.数据库读取用户信息和授权信息 1.上篇用户名好授权等信息都是从内存读取实际情况都是从数据库获取; 主要设计两个类 UserDetails和UserDetailsService 看下…

linux高级篇基础理论七(Tomcat)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…

主食罐头哪个牌子好?猫主食罐头品牌盘点

养猫的这几年德罐也买了不少了,很早以前德罐给我的感觉就是,物美价廉,而且质量保障也不错,很美丽。但最近的德罐恕在下高攀不起了。 猫罐头侠登场!养猫这么久了我就把我吃的不错的猫罐头分享一下!别纠结了…

Dockerfile 指令的最佳实践

这些建议旨在帮助您创建一个高效且可维护的Dockerfile。 一、FROM 尽可能使用当前的官方镜像作为镜像的基础。Docker推荐Alpine镜像,因为它受到严格控制,体积小(目前不到6 MB),同时仍然是一个完整的Linux发行版。 FR…

【FPGA】Quartus18.1打包封装网表文件(.qxp)详细教程

当我们在做项目的过程中,编写的底层Verilog代码不想交给甲方时怎么办呢?此时可以将源代码打包封装成网表文件(.qxp)进行加密,并且在工程中进行调用。 Quartus II的.qxp文件为QuartusII Exported Partition,…

马来西亚虾皮选品工具:如何优化您的电商业务

随着电子商务的快速发展,越来越多的商家开始将目光投向在线市场。在马来西亚,虾皮(Shopee)平台成为了一个备受瞩目的电商平台,吸引了大量的商家和消费者。然而,要在这个竞争激烈的市场中脱颖而出并取得成功…