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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 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

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
22天前
|
存储 数据挖掘 索引
服务器数据恢复—LeftHand存储结构和P4500存储数据恢复案例
LeftHand存储支持RAID5、RAID6、RAID10磁盘阵列,同时还支持卷快照,卷动态扩容等。下面简单聊一下LeftHand存储的结构和一个LeftHand p4500存储中磁盘阵列数据恢复案例。
服务器数据恢复—LeftHand存储结构和P4500存储数据恢复案例
|
24天前
|
存储 运维 Oracle
服务器数据恢复—光纤共享存储互斥出现问题的数据恢复案例
两台SOLARIS系统(SPARC平台)的服务器通过光纤交换机共享同一个存储作为CLUSTER使用。正常情况下只有A服务器工作。如果A服务器发生故障宕机,可将A服务器关机,开启B服务器接管。但由于配置不当导致共享存储互斥出现问题。 管理员进行运维检查时发现B服务器连接了一块未知磁盘。由于B服务器并未启用,处于闲置状态,所以管理员也将这块磁盘当作闲置的,于是在B服务器上将磁盘的某个分区做了newfs。没想到这块磁盘就是那个共享存储,执行操作没有多长时间A服务器就开始报警并宕机。
|
1天前
|
运维 数据挖掘 开发工具
服务器数据恢复—硬盘离线导致raid5阵列热备盘上线失败的数据恢复案例
服务器磁盘阵列数据恢复环境: 服务器中有两组分别由4块SAS硬盘组建的raid5磁盘阵列,两组raid5阵列划分LUN,组成LVM结构,格式化为EXT3文件系统。 服务器磁盘阵列故障: 服务器中一组raid5阵列中有一块硬盘离线,热备盘自动上线替换离线硬盘。热备盘上线同步数据过程中又有一块硬盘离线,热备盘同步失败,该组raid5阵列崩溃,LVM结构变得不完整,文件系统无法使用。 硬件工程师对两块离线硬盘进行硬件故障检测,发现先离线硬盘无法识别,初步判断该硬盘存在硬件故障,需要进行开盘修复。后离线硬盘可以正常识别。
服务器数据恢复—硬盘离线导致raid5阵列热备盘上线失败的数据恢复案例
|
17天前
|
存储 数据管理 应用服务中间件
Docker的数据管理实战篇
关于Docker数据管理实战的教程,涵盖了Docker数据卷的使用、特点、场景以及数据卷容器的概念和应用。
45 13
Docker的数据管理实战篇
|
10天前
|
SQL 数据挖掘 数据库
服务器数据恢复—意外断电导致XenServer虚拟机不可用的数据恢复案例
服务器数据恢复环境: 一台服务器中有一组由4块STAT硬盘通过RAID卡组建的RAID10阵列,上层是XenServer虚拟化平台,虚拟机安装Windows Server操作系统,作为Web服务器使用。 服务器故障: 因机房异常断电导致服务器中一台VPS(Xen Server虚拟机)不可用,虚拟磁盘文件丢失。
服务器数据恢复—意外断电导致XenServer虚拟机不可用的数据恢复案例
|
17天前
|
Linux Docker Windows
Docker配置https证书案例
本文介绍了如何为Docker的Harbor服务配置HTTPS证书,包括安装Docker和Harbor、修改配置文件以使用证书、生成自签名证书、配置证书以及验证配置的步骤。
23 2
Docker配置https证书案例
|
18天前
|
Ubuntu Linux Docker
Ubuntu 18.04 安装Docker实战案例
关于如何在Ubuntu 18.04系统上安装Docker的实战案例,包括安装步骤、配置镜像加速以及下载和运行Docker镜像的过程。
104 3
Ubuntu 18.04 安装Docker实战案例
|
18天前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
63 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
18天前
|
网络协议
keepalived对后端服务器的监测方式实战案例
关于使用keepalived进行后端服务器TCP监测的实战案例,包括配置文件的编辑和keepalived服务的重启,以确保配置生效。
29 1
keepalived对后端服务器的监测方式实战案例
|
18天前
|
存储 关系型数据库 MySQL
使用Docker快速部署Mysql服务器
本文介绍了如何使用Docker快速部署MySQL服务器,包括下载官方MySQL镜像、启动容器、设置密码、连接MySQL服务器以及注意事项。
101 18