Docker数据卷-附服务器搭建案例

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS AI 助手,专业版
简介: Docker数据卷-附服务器搭建案例

屏幕截图 2023-08-28 185348.png

一.数据卷的作用

用来实现容器与宿主机之间或容器与容器之间的数据共享

   对于一些容器我们我往往需要经常的修改配置文件,频繁的进入容器显得很麻烦。

   对于容器(mysql)中的数据,我们希望可以持久化到本地,作为一种备份。

二.数据卷特点

数据卷可以在容器之间共享和复用

   对数据卷的修改会立即影响到对应容器

   对数据卷的修改不会影响镜像

   数据卷一直存在,即使容器被删除

实例1:

1.创建数据卷目录

mkdir /root/apps

2.运行Tomcat容器,并挂载数据卷到网页根目录

docker run -d -p 8081:8080 --name tomcat1 \
-v /root/apps:/usr/local/tomcat/webapps tomcat

3.访问测试

4.追踪查看容器日志,修改数据卷内容,看日志变化

docker logs -f tomcat1
cd /root/apps
mkdir ROOT
echo "

www.tomcat.com

" > /root/apps/ROOT/index.html

5.数据卷容器共享,并设置容器内目录只读

docker run -d -p 8082:8080 --name tomcat2 \
-v /root/apps:/usr/local/tomcat/webapps:ro tomcat

三.数据卷操作

1.自定义数据卷目录

docker run -v 本地目录路径:容器内路径

2.自动创建数据卷

docker run -v 数据卷名(自动创建):容器内路径

3.常用数据卷命令

查看数据卷

docker volume ls

创建数据卷

docker volume create data_vo1

查看某个卷详情

docker volume inspect data_vo1

删除数据卷

docker volume rm 数据卷名

删除未用的数据卷

docker volume prune

4.实例演示

具名挂载:

docker run -d -p 8083:8080 --name tomcat3 \
-v data_vo1:/usr/local/tomcat/webapps tomcat
ls /var/lib/docker/volumes/data_vo1/_data

匿名挂载:

docker run -d -p 8084:8080 --name tomcat4 \
-v /usr/local/tomcat/webapps tomcat
=======================================

实例2:数据卷挂载mysql

1.下载mysql5.7镜像

docker pull mysql5.7

2.启动mysql容器,映射端口、设置密码、挂载自动数据卷

docker run -itd --name mysql1 -p 3306:3306 \

-e MYSQL_ROOT_PASSWORD=123.com \

-v mysqldata:/var/lib/mysql mysql:5.

3.连接数据库,创建测试表

4.删除mysql1容器

docker stop mysql1

docker rm mysql1

5.查看数据卷是否还有数据

ls /var/lib/docker/volume/mysqldata/_data

6.新建容器,复用旧数据卷

删除所有容器

docker rm -f $(docker ps -aq)

docker run -itd --name mysql1 -p 3306:3306 \

-e MYSQL_ROOT_PASSWORD=123.com \

-v mysqldata:/var/lib/mysql mysql:5.7

7.连接数据库,查看旧数据表是否存在

8.再新建容器,以修改后的配置文件启动

删除所有容器

docker rm -f $(docker ps -aq)
docker run -itd --name mysql1 -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123.com \
-v mysqldata:/var/lib/mysql \
-v mysqlconf:/etc/mysql mysql:5.7
=======================================

Dockerfile挂载数据卷

1.创建目录

mkdir /root/data_volume

cd /root/data_volume

2.创建Dockerfile

vim Dockerfile
FROM centos:7
VOLUME ["volume01","volume02"]
CMD echo "---end---"
CMD /bin/bash

3.构建镜像

docker build -t testvolume .

4.启动容器

docker run -itd --name testvolume1 testvolume /bin/bash

5.查看测试数据卷

数据卷容器:容器间数据双向同步共享

1.创建两个容器,数据卷共享testvolume1

docker run -itd --name testvolume2 --volumes-from testvolume1 testvolume

docker run -itd --name testvolume3 --volumes-from testvolume1 testvolume

2.进入容器,测试共享

docker exec -it testvolume2 /bin/bash
cd volume1
touch test2
docker exec -it testvolume3 /bin/bash
cd volume1
ls
touch test3

3.关闭testvolume1,查看数据是否在

Elasticsearch + Kibana

一 安装Elasticsearch

1.下载ES镜像

docker pull elasticsearch:7.7.1

2.运行镜像

docker run -itd --name es1 -p 9200:9200 -p 9300:9300 \
-v esdata:/usr/share/elasticsearch/data \
-v esconfig:/usr/share/elasticsearch/config \
-v esplugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" elasticsearch:7.7.1

3.安装ik分词器插件

docker inspect esplugins
cd /var/lib/docker/volumes/esplugins/_data
mkdir ik 
cd ik 
上传elasticsearch-analysis-ik-7.7.1.zip
unzip elasticsearch-analysis-ik-7.7.1.zip
docker restart es1

二.安装在kibana,并连接到ES

1.下载kibana镜像

docker pull kibana:7.7.1

2.运行容器

docker run -itd --name kibana1 -p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://192.168.8.10:9200 kibana:7.7.1

3.访问kibana,测试分词器

Dev tools
GET _analyze
{
   "analyzer": "ik_max_word",
   "text": ["中华人民共和国"]
}

三 另开一台虚拟机安装nginx,并通过filebeat收集日志到es

yum -y install nginx

systemctl start nginx

复制filebeat7.7.1到虚拟机/root

cd /root 
rpm -ivh filebeat-7.7.1-x86_64.rpm
vim /etc/filebeat/filebeat.yml

添加:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
output.elasticsearch:
  hosts: ["192.168.8.10:9200"]
保存退出
systemctl start filebeat 
==================================

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。

Spring Boot目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

1.开发springboot微服务

2.对springboot应用程序进行打包

   war    过渡    tomcat

   jar    主流    jdk

3.打包项目

aliyun-sdk-oss-2.6.1.jar

4.在服务器中创建Dockerfile目录

mkdir /root/springboot
上传jar包到 /root/springboot
vim Dockerfile
FROM openjdk:8-jre
WORKDIR /app
ADD aliyun-sdk-oss-2.6.1.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]

5.构建镜像

docker build -t app1 .

6.运行容器

docker run -d -p 8081:8080 --name apptest app1
==================================

Node.js

是一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一个让 JavaScript 运行在服务端的开发平台。

1.拉取 node 镜像

docker pull node

2.查看本地镜像

docker images

3.运行容器

docker run -itd --name node-test node

4.进入查看容器

docker exec -it node-test /bin/bash

node -v

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
8月前
|
存储 运维 数据挖掘
服务器数据恢复—EqualLogic存储硬盘出现坏道的数据恢复案例
某品牌EqualLogic PS6100存储阵列上有一组由16块硬盘组建的raid5磁盘阵列。磁盘阵列上层划分多个大小不同的卷,存放虚拟机文件。 硬盘出现故障导致存储阵列不可用,需要恢复存储阵列中的数据。
|
8月前
|
存储 运维 Oracle
服务器数据恢复—存储硬盘指示灯亮黄灯,RAID5阵列崩溃的数据恢复案例
服务器存储数据恢复环境: 某单位一台某品牌DS5300存储,1个机头+4个扩展柜,50块的硬盘组建了两组RAID5阵列。一组raid5阵列有27块硬盘,存放Oracle数据库文件。存储系统上层一共划分了11个卷。 服务器存储故障: 存储设备上两个硬盘指示灯亮黄色。其中一组RAID5阵列崩溃,存储不可用,设备已经过保。
|
11月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
8月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
876 6
|
9月前
|
Unix 应用服务中间件 索引
服务器数据恢复—LUN映射出错导致文件系统共享冲突的数据恢复案例
SUN光纤存储系统中有一组由6个硬盘组建的RAID6,划分为若干LUN,MAP到跑不同业务的服务器上,这些服务器上运行的是SOLARIS操作系统。 服务器不存在物理故障。由于公司业务变化,需要增加一台服务器跑新的应用。服务器管理员在原服务器在线的状态下,将其中一个lun映射到一台新服务器上。实际上,这个刚映射过去的卷已经map到了solaris生产系统上的某个lun上了。映射到新服务器后,服务器对这个卷进行初始化的操作,原solaris系统上的磁盘报错,重启服务器后这个卷已经无法挂载。 服务器管理员寻求sun原厂工程师的帮助。sun工程师检测后执行了fsck操作。执行完成后文件系统挂载成功。查
|
11月前
|
存储 测试技术 数据安全/隐私保护
【Docker项目实战】使用Docker部署dufs文件服务器
【Docker项目实战】使用Docker部署dufs文件服务器
1336 17
【Docker项目实战】使用Docker部署dufs文件服务器
|
9月前
|
存储 数据挖掘 Linux
服务器数据恢复—重装系统导致OceanStor存储上的分区无法访问的数据恢复案例
服务器存储数据恢复环境: 华为OceanStor某型号存储+扩展盘柜,存储中的硬盘组建了raid5磁盘阵列,上层分配了1个lun。 linux操作系统,划分了两个分区,分区一通过lvm扩容,分区二为xfs文件系统。 服务器存储故障: 工作人员重装系统操作失误导致磁盘分区变化,分区二无法访问,数据丢失。
|
10月前
|
存储 算法 数据挖掘
服务器数据恢复—昆腾存储StorNext文件系统数据恢复案例
一台昆腾存储设备中有一组raid5磁盘阵列。阵列上有两块硬盘先后离线,raid5磁盘阵列不可用。
|
9月前
|
存储 数据挖掘 Windows
服务器数据恢复—RAIDZ上层ZFS文件系统数据恢复案例
一台服务器有32块硬盘,采用Windows操作系统。 服务器在正常运行的时候突然变得不可用。没有异常断电、进水、异常操作、机房不稳定等外部因素。服务器管理员重启服务器,但是服务器无法进入系统。管理员联系北亚企安数据恢复工程师要求恢复服务器数据。
|
9月前
|
存储
服务器数据恢复—服务器断电导致数据丢失的数据恢复案例
某品牌服务器中有12块硬盘,组建了一组raid5磁盘阵列,服务器内存储的是普通文件。 机房供电不稳定导致服务器断电,管理员重启服务器后发现服务器无法正常工作。 根据描述的故障发生过程,北亚企安数据恢复工程师推断故障是意外断电导致raid模块损坏。

热门文章

最新文章