基于docker的常用服务搭建
使用docker搭建相关服务:
1. MySQL服务
1) 拉取镜像
docker pull mysql:5.7 # 拉取 mysql 5.7
docker pull mysql # 拉取最新版mysql镜像 # 不指定版本,默认拉取最新的
2)启动服务
sudo docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7 –name:容器名,此处命名为mysql
-e:配置信息,此处配置mysql的root用户的登陆密码
-p:端口映射,此处映射 主机3306端口 到 容器的3306端口
-v: 挂载数据卷, 宿主目录: 容器目录
-d:源镜像名,此处为 mysql:5.7
3) 如果你的容器运行正常,但是无法访问到MySQL,一般有以下几个可能的原因:
a) 防火墙
# 开放端口:
$ systemctl status firewalld
$ firewall-cmd --zone=public --add-port=3306/tcp -permanent
$ firewall-cmd --reload
# 关闭防火墙:
$ sudo systemctl stop firewalld
b)需要进入docker本地客户端设置远程访问账号
$ sudo docker exec -it mysql bash
$ mysql -uroot -p123456
mysql> grant all privileges on *.* to root@'%' identified by "password";
# mysql使用mysql数据库中的user表来管理权限,修改user表就可以修改权限(只有root账号可以修改) mysql> use mysql;
Database changed mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host | user | password |
+--------------+------+-------------------------------------------+
| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec) mysql> grant all privileges on *.* to root@'%' identified by "password";
Query OK, 0 rows affected (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec) mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host | user | password |
+--------------+------+-------------------------------------------+
| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| % | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)
2.mongo服务
1)拉取镜像
docket pull mongo:latest
2)运行容器
docker run -it --name mongo-server -v /data/docker_data/mongoDB:/data/db -p 27018:27017 -d mongo:latest --auth --name 容器名称
-v 数据挂载
-p 端口映射
-d 守护进程
--auth 需要验证
3)创建用户
# 进入容器
docker exec -it mongo-server /bin/bash # 进入mongo
mongo # 创建管理员
use admin db.createUser({user:"admin",pwd:"admin",roles:[{role:"root",db:"admin"}]}); # 退出当前用户
exit # 使用新创建的管理员账号进行登录
mongo --port 27017 -u admin -p admin --authenticationDatabase admin # 创建普通用户
> use test
switched to db test
> db.createUser({user:"tester",pwd:"tester",roles:[{role:"readWrite",db:"test"}]});
# 退出
exit
4)在容器外进行连接
# 如果Linux不存在mongo客户端,可以使用yum 进行安装
yum install -y mongodb // client
yum install -y mongodb-server // server mongo --port 27018 -u tester -p tester --authenticationDatabase test
mongo中的角色与权限说明:
数据库用户角色 read、readWrite
数据库管理角色 dbAdmin、dbOwner、userAdmin
集群管理角色 clusterAdmin、clusterManager、clusterMonitor、 hostManager
备份恢复角色 backup、restore
所有数据库角色 readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色 root
内部角色 __system
角色说明 Read 允许用户读取指定数据库
readWrite 允许用户读写指定数据库
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root 只在admin数据库中可用。超级账号,超级权限
3. Redis
获取redis.conf配置: http://download.redis.io/redis-stable/redis.conf
docker run -d -p 6379:6379 \
-v /mnt/d/lixing/servers/redis/config/redis.conf:/etc/redis/redis.conf \
-v /mnt/d/lixing/servers/redis/data:/data \
--name redis-server redis:latest \
redis-server /etc/redis/redis.conf --appendonly yes
# 参数说明:
# -v /usr/local/dockerMapping/redis/config/redis.conf:/etc/redis/redis.conf : 映射配置文件
# -v /usr/local/dockerMapping/redis/data:/data : 映射数据目录
# redis-server /etc/redis/redis.conf : 指定配置文件启动redis-server进程
# --appendonly yes : 开启数据持久化
# --requirepass "123456"
更多配置:
daemonize : 默认为no,修改为yes启用守护线程
port :设定端口号,默认为6379 bind :绑定IP地址
databases :数据库数量,默认16
save :指定多少时间、有多少次更新操作,就将数据同步到数据文件
#redis默认配置有三个条件,满足一个即进行持久化
save 900 1 #900s有1个更改
save 300 10 #300s有10个更改
save 60 10000 #60s有10000更改
dbfilename :指定本地数据库的文件名,默认为dump.rdb dir :指定本地数据库的存放目录,默认为./当前文件夹
requirepass :设置密码,默认关闭
redis -cli -h host -p port -a password
基于docker的常用服务搭建的更多相关文章
- Linux Centos7 环境基于Docker部署Zookeeper服务搭建实战
配置Zookeeper安装目录 在宿主机配置zookeeper安装目录:/docker/develop/zookeeper 并且在文件夹创建 data 和logs 目录: mkdir -p /dock ...
- 基于 Docker 的微服务架构实践
本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...
- EOS Dapp开发(1)-基于Docker的开发环境搭建
随着EOS主网的上线,相信基于EOS的Dapp开发会越来越多,查阅了很多资料相关的开发资料都不是很多,只能自己摸索,按照网上仅有的几篇教程,先git clonehttps://github.com/E ...
- [置顶]
Docker学习总结(7)——云端基于Docker的微服务与持续交付实践
本文根据[2016 全球运维大会•深圳站]现场演讲嘉宾分享内容整理而成 讲师简介 易立 毕业于北京大学,获得学士学位和硕士学位:目前负责阿里云容器技术相关的产品的研发工作. 加入阿里之前,曾在IBM中 ...
- 基于Docker安装常用软件
基于Docker安装常用软件 本实验介绍如何基于Docker安装常用的软件,具体包括: Ubuntu Cetnos Nginx Node.js PHP MySQL Tomcat Redis Mongo ...
- Ubuntu 基于Docker的TensorFlow 环境搭建
基于Docker的TensorFlow 环境搭建 基于(ubuntu 16.04LTS/ubuntu 14.04LTS) 一.docker环境安装 1)更新.安装依赖包 sudo apt-get up ...
- 云端基于Docker的微服务与持续交付实践
云端基于Docker的微服务与持续交付实践笔记,是基于易立老师在阿里巴巴首届在线技术峰会上<云端基于Docker的微服务与持续交付实践>总结而出的. 本次主要讲了什么? Docker Sw ...
- 基于Docker的Consul服务发现集群搭建
在去年的.NET Core微服务系列文章中,初步学习了一下Consul服务发现,总结了两篇文章.本次基于Docker部署的方式,以一个Demo示例来搭建一个Consul的示例集群,最后给出一个HA的架 ...
- 基于Docker的Mysql主从复制搭建
来源:https://www.cnblogs.com/songwenjie/p/9371422.html?tdsourcetag=s_pctim_aiomsg 为什么基于Docker搭建? 资源有 ...
- 基于Docker在Win10平台搭建Ruby on Rails 6.0框架开发环境
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_170 2020年,"非著名Web框架"–Ruby on Rails已经15岁了.在今年,Rails 6.0趋于 ...
随机推荐
- Redis常见问题和性能监控
1 Redis常见面试问题 1.1 Redis是单线程还是多线程 Redis不同版本之间采用的线程模型是不一样的,在Redis4.0版本之前使用的是单线程模型,在4.0版本之后增加了多线程的支持. 在 ...
- python之re库,正则表达
一.前言 为什么要学re库呢?这里主要学他的正则表达,在编写安全脚本的时候肯定要遇到一些不规则的匹配规则,当然编写爬虫也少不了正则匹配去找到一些具有特殊特征的字符串.因此这是十分必要的,然而.re库使 ...
- 知乎问题:为什么很多web项目还是使用 px,而不是 rem?
阅读过几篇关于 px rem 的文章,感觉 rem 很强大.但是自己接触到的公司项目全部都使用 px,想知道为什么.是我司技术更新落后了吗? 我们当然有在用 vw 和 vh,但是只是在 layout ...
- Angular 18+ 高级教程 – 关于本教程
版本声明 本教程写于 Angular v17,但往后的所有新功能,API 都有更新到相关文章里头,所以教程总是最新的,大家可以安心学习. 前言 光阴飞逝,一转眼,我尽然已经有两年多的时间完全没有接触 ...
- ASP.NET Core – Dependency Injection
前言 很久很久以前就写过了 Asp.net core 学习笔记 ( DI 依赖注入 ), 这篇只是整理一下而已. 参考 Using dependency injection in a .Net Cor ...
- QT原理与源码分析之QT5原理与源码分析视频课程 补天云QT技术培训专家
QT原理与源码分析之QT5原理与源码分析视频课程 补天云QT技术培训专家 以下是<< QT5原理与源码分析视频课程>>的完整目录. 第1章 准备 第1节 您可以学到什么? 第2 ...
- C#上位机与PLC通信心跳的实现方法
-Begin- 大家好!我是付工.众所周知,在工业自动化控制系统中,上位机与下位机之间的通信是实现自动化生产的关键环节之一.为了确保通信的稳定性和可靠性,我们通用会采用一种被称为[心跳机制]的方法,它 ...
- 墨天轮国产数据库沙龙 | 张晓庆:GoldenDB分布式数据库的自动安装与备份恢复
在共同推进国产化生态发展的进程下,墨天轮正式推出"墨天轮国产数据库沙龙"系列直播活动,将定期邀请各国产数据库产品专家.掌门人,共同探讨如何达成技术"自主可控"的 ...
- 前端 export default 和 export const name 的区别?
export default 是默认导出export const 是命名导出 在一个vue文件中export const可以有多个,但是export default只有且仅有一个,{}表示导入非默认变 ...
- 淘宝程序员没活硬整?在 Excel 和 VSCode 中购物!
大家好,我是程序员鱼皮,最近某宝网站的改进,属实是有点 "新" 了. 你敢相信这是一个购物网站么? 你可以在 Excel 表格中挑选商品进行购物,还原度极高,这两个图表更是点睛之笔 ...