搞机:使用docker-compose10分钟搞定redis,mongodb,mysql三大数据库
redis,mongodb,mysql三大数据库应该算是后端最为常用的三种数据库了,部署后端服务的时候一个一个的安装过于麻烦,这里我们结合docker的使用实现快速安装,并使用docker-compose实现快速插拔,下面我使用ubunut演示。
docker安装
不推荐使用apt 安装 docker.io 因为版本太低好多功能没有,推荐使用docker-ce,安装步骤如下:
1、更新APT源
sudo apt update
2、安装软件包以允许apt通过HTTPS使用存储库
sudo apt install apt-transport-https ca-certificates curl software-properties-common
3、使用教育网镜像
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add
4、添加仓库
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
5、更新下软件源并安装docker-ce
sudo apt update && sudo apt install docker-ce -y
6、开启服务
- 使用
sudo service docker start
或是sudo systemctl start docker
开启 docker 服务 sudo systemctl restart docker
重启服务sudo systemctl stop docker
关闭服务- 使用
sudo systemctl enable docker
开启开机自启动 sudo systemctl disable docker
关闭自启动
7、建立docker用户组并给root权限
- 添加docker组
sudo groupadd docker
提示已经存在就直接下一步 - 添加用户到docker组
sudo gpasswd -a 这里添你的用户名 docker
- 重新启动docker
sudo systemctl restart docker
- 更新用户组
newgrp docker
- 直接键入
docker
就可以使用docker了
8、更改docker images 存储位置
$ sudo vim /etc/docker/daemon.json
{"graph": "/my-docker-images"
}
安装 docker-compose
主要有两种安装方式:
github下载安装:
sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose
由于速度比较慢,特别是在云主机上,水管太小了,放弃了
使用pip安装
1、ubuntu上有python3,需要安装一个pip3
sudo apt install python3-pip
2、 升级pip3,这里使用tuna镜像国内安装速度更快
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
3、 安装docker-compose
pip3 install -U docker-compose
速度慢的话同上使用tuna
4、测试能否使用
使用docker-compose
docker-compose使用yml文件进行配置,我们先创建一个文件夹统一放置yml文件,以及数据库的持久化数据,我创建名为dockers
的文件夹:
然后我们一个一个来创建:
mongodb + mongo express
1、创建存放数据目录:
2、创建docker-compose.yml
文件:
version: '3'
services:mongo:image: mongovolumes:- ./mongo/db:/data/db # /data/db是container中存放数据位置ports:- 27017:27017restart: alwaysmongo-express:links:- mongo # 这里关联到mongo的containerimage: mongo-expressrestart: alwaysports:- 8081:8081environment:ME_CONFIG_BASICAUTH_USERNAME: ffzsME_CONFIG_BASICAUTH_PASSWORD: 123zxc
3、运行docker-compose
:
这里加 -d
后台运行,第一次运行建议不加-d
可以看log
4 、查看是否成功开启访问http://localhost:8081/
打开mongo express
出现如下页面说明成功:
5、创建新database:
6、创建新collection:
7、插入内容:
8、关闭docker-compose
再打开看是否数据还在
刷新mongo express
,发现数据还在, 说明数据持久化成功:
mysql安装
1、先处理配置文件:
首先创建文件夹,然后写入配置信息:
[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
2、创建存放数据文件夹:
3、然后是yml文件内容:
mysql:image: mysqlports:- 33060:33060- 3306:3306command: --default-authentication-plugin=mysql_native_passwordrestart: alwaysvolumes:- ./mysql/db:/var/lib/mysql- ./mysql/conf.d:/etc/mysql/conf.denvironment:MYSQL_ROOT_PASSWORD: 123zxc adminer:image: adminerrestart: alwaysports:- 8080:8080
4、启动docker-compose
5、访问http://localhost:8080/
打开adminer
输入用户名密码后,成功开启:
6、关闭后再启动使用python访问一下
访问成功,数据本地存储成功
redis 安装
1、创建存放数据文件夹和创建配置文件:
mkdir -p redis/db && mkdir -p redis/conf
2、创建配置文件vim ./redis/conf/redis.conf
内容如下
requirepass 123zxc #这是密码stop-writes-on-bgsave-error no
rdbcompression no
dbfilename dump.rdbappendonly yes
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mbdir /data/
2、测试是否成功
我是用python链接测试,当然也可以使用Redis Desktop Manager
3、重启docker-compose
4、依旧可以获取数据,说明持久化成功
完整yml文件内容如下:
version: '3'
services:mongo:image: mongovolumes:- ./mongo/db:/data/db # /data/db是container中存放数据位置ports:- 27017:27017restart: alwaysmongo-express:links:- mongo # 这里关联到mongo的containerimage: mongo-expressrestart: alwaysports:- 8081:8081environment:ME_CONFIG_BASICAUTH_USERNAME: ffzsME_CONFIG_BASICAUTH_PASSWORD: 123zxcmysql:image: mysqlports:- 33060:33060- 3306:3306command: --default-authentication-plugin=mysql_native_passwordrestart: alwaysvolumes:- ./mysql/db:/var/lib/mysql- ./mysql/conf.d:/etc/mysql/conf.denvironment:MYSQL_ROOT_PASSWORD: 123zxc adminer:image: adminerrestart: alwaysports:- 8080:8080redis:image: redisrestart: alwayscommand: redis-server /usr/local/etc/redis/redis.confports:- 6379:6379volumes:- ./redis/conf/redis.conf:/usr/local/etc/redis/redis.conf- ./redis/db/:/data/
觉得有用点个赞哈!!!!!!!!!11
搞机:使用docker-compose10分钟搞定redis,mongodb,mysql三大数据库相关推荐
- docker容器连接宿主机redis和mysql
当我们在用docker部署项目的时候可能会遇到这样一个问题:项目A和项目B都用到了redis和mysql,如果在docker-compose里link或者dependon一个redis和mysql的话 ...
- 掘地三尺搞定 Redis 与 MySQL 数据一致性问题
若有收获,请记得分享和转发哦 Redis 拥有高性能的数据读写功能,被我们广泛用在缓存场景,一是能提高业务系统的性能,二是为数据库抵挡了高并发的流量请求, 把 Redis 作为缓存组件,需要防止出现以 ...
- docker 测试mysql_95--Docker案例(redis测试/mysql测试/tomcat测试)
Docker案例 关闭防火墙 # 关闭防火墙 systemctl stop firewalld.service # 禁止防火墙开机启动 systemctl disable firewalld.serv ...
- 搞定 Redis 数据存储原理,别只会 set、get 了
在上一篇通过源码编译构建出可调式环境之后,想必你想更深入了解我的整体架构.当你熟悉我的整体架构和每个模块,遇到问题才能直击本源,直捣黄龙,一笑破苍穹. 我的核心模块如图 1-10. 图1-10 图 1 ...
- Docker - 单独搭建部署应用服务(Nginx+Php+Mysql+Redis)
概述 使用docker搭建一个php.redis.mysql.nginx的常用实例,基础好的同学可直接跳过前面的基础讲解,直接开始实战. 基础知识 镜像操作 1.查看docker版本 docker-c ...
- 借力 Docker ,三分钟搞定 MySQL 主从复制!
hello 各位小伙伴大家好,今年 5 月份的时候,松哥和大家聊过如何搭建 MySQL 主从复制: 提高性能,MySQL 读写分离环境搭建(一) 提高性能,MySQL 读写分离环境搭建(二) 不过很多 ...
- 使用开源实时监控系统 HertzBeat 5分钟搞定 Mysql 数据库监控告警
使用开源实时监控系统 HertzBeat 对 Mysql 数据库监控告警实践,5分钟搞定! Mysql 数据库介绍 MySQL是一个开源关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 O ...
- windows+mysql集群搭建-三分钟搞定集群
一.集群了解 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一个库dang了,不会影响程序的运行.首先看了一些关于集群的资料,然后根据步骤一步步的整,遇到了一些问题,在这里把我遇到的问题以及解 ...
- 5分钟搞定物联网 App —— 温湿度传感器 + 4路继电器
5分钟搞定物联网 App -- 温湿度传感器 + 4路继电器 前边的视频我们分享 Modbus 设备通过 DTU 快速接入 ThingsCloud 云平台后,通过 Modbus 云网关对应到了独立的设 ...
最新文章
- pc端WINCE的安装包
- oracle数据恢复方法
- python和anaconda一定要对应版本安装吗_Anaconda与Python安装版本对应关系 --- 转载
- 2019-11-18 自动控制原理的几个基本概念
- 非递归实现二叉树(前序,中序,后序)c/c++实现
- php5.2 $_GET漏洞,ThinkPHP5 远程代码执行漏洞-动态分析
- VC++ 6.0的一些使用技巧---IDE的使用
- linux+arm+移除X11,关于ARM GTK/X11的问题,懂的指点一下
- python为什么叫爬虫-总算领会python为什么叫爬虫
- C++之禁用特定告警
- merge规则 python_用Python处理PDF
- Java资源大全中文版(Awesome最新版)(转载)
- Silverlight实用窍门系列:43.Silverlight从ListBox拖拽图标到另一ListBox
- 从零学iFIX视频教程 2.01版 完整目录 (总共220节视频)
- inovance变频器说明书参数设置_汇川(INOVANCE)MD310变频器说明书.pdf
- 双系统正确卸载Ubuntu系统
- QQ空间无法点赞或者QQ空间点赞被取消
- 有道智选-网易效果推广
- 禁止小程序输入Emoji表情符
- 英语affrike非洲affrike单词