Docker搭建环境
Docker安装MySQL
1.查看仓库可用版本
docker search mysql
2.拉取最新版本 MySQL镜像(当然也可以指定版本)
docker pull mysql:latest
3.运行容器
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysql mysql
docker run -itd --name cuchulainn -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysql mysql
docker run --启动容器
-itd 后台运行
-name mysql-test --指定容器名称为mysql-test
-e MYSQL_ROOT_PASSWORD=mysql–配置环境变量,指定root用户的密码为mysql
-p 3306:3306 -映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL
4.MySQL密码验证参数修改及设置
docker exec -it mysql-test /bin/bash 进入容器
mysql -u root -p密码
mysql> use mysql;
mysql> select user,plugin from user;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
mysql> FLUSH PRIVILEGES;
mysql> select user,plugin from user;
5.使用第三方软件链接数据库
Docker安装Redis
1 .从官网下载到本地
docker pull redis:latest
2.创建Redis容器
docker run --name redis -p 6379:6379 redis 创建名为redis的容器 ,第一个redis为容器的名字。
此外还可以添加:
–restart=always 总是自动启动
-p 6379:6379 端口映射 本机的端口:容器的端口
-v d:\redis\redis.conf:/etc/redis.conf redis配置文件映射。 本地路径:容器路径
-v d:\redis\data:/data redis数据文件映射。本地路径:容器路径
3.进入Redis客户端
docker exec -it redis bash 其中redis是自己设置的容器名
redis-cli
Docker安装RocketMQ
1、镜像拉取
docker pull rocketmqinc/rocketmq:latest
2、启动 namesrv
docker run -d -p 9876:9876 -v D:/Docker/rocketmq/namesrv/logs:/root/logs -v D:/Docker/rocketmq/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" 09bbc30a03b6 sh mqnamesrv
namesrv 作用
1,定位为注册中心,保存broker节点库路由信息
2,支持集群模式,每个 namesrv 之间不进行任何通信,多点容灾通过 producer/consumer 再访问 namesrv 时候轮询获取信息(当前节点访问失败就转向下一个)。
3,namesrv 作为注册中心,负责接收 broker 定期注册信息并维持再内存中,所有数据都保存在内存中,broker 定期的注册过程的也是遍历所有 namesrv 进行注册;
4,namesrv 提供对外接口对 producer 和 consumer 访问 broker 路由信息,底层用 netty 来实现。
5,namesrv 对 broker 存活检测采用心跳机制,即 namesrv 作为 broker 的 server 端定期接收 broker 的心跳信息,超时无心跳就移出 broker ,底层通过 epoll 的消息机制来检测连接是否稳定。
3、启动 broker命令
docker run -d -p 10911:10911 -p 10909:10909 -v D:/Docker/rocketmq/bocker/logs:/root/logs -v D:/Docker/rocketmq/bocker/store:/root/store -v D:/Docker/rocketmq/bocker/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" 09bbc30a03b6 sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
启动bocker前需要修改下 bocker.conf 配置文件, 本人的bocker.conf 的安装路径为 D:/programCoding/Docker/rocketmq/conf
brokerClusterName = DefaultCluster // 消费模式,默认集群
brokerName = broker-a
brokerId = 0
deleteWhen = 04// 清除未被消费消息时间,凌晨四点
fileReservedTime = 48 // 消息保留时间
brokerRole = ASYNC_MASTER // broker角色,默认为异步MASTER
flushDiskType = ASYNC_FLUSH // 刷盘策略,异步刷盘
brokerIP1 = 172.20.216.121//Linux下填Linux公网Ip,Windows利用 docker inspect 09bbc30a03b6,查看IPAddress
4、 拉取 Rocket-console 控制台
docker pull styletang/rocketmq-console-ng
5、docker 启动 Rocket-console
docker run -d -e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=172.20.216.121:9876 -Drocketmq.config.isVIPChannel=false" -p 9999:8080 -t --name rmConsole 7df83bb6e638
浏览器输入 localhost:9999,即可看到安装预览效果
Docker安装Neo4j
1.从镜像源中查找镜像
docker search neo4j
2.拉取镜像源
docker pull neo4j(:版本号) //缺省 “:版本号” 时默认安装latest版本的
3.查看本地镜像,检验是否拉取成功
docker images
4.启动容器
docker run -d --name neo4j-test -p 27474:7474 -p 27687:7687 -v D:/Docker/neo4j/data:/data -v D:/Docker/neo4j/logs:/logs -v D:/Docker/neo4j/conf:/var/lib/neo4j/conf -v D:/Docker/neo4j/import:/var/lib/neo4j/import --env NEO4J_AUTH=neo4j/password neo4j
-d --name container_name //-d表示容器后台运行 --name指定容器名字
-p 27474:7474 -p 27687:7687 //映射容器的端口号到宿主机的端口号;27474 为宿主机端口
-v /home/neo4j/data:/data //把容器内的数据目录挂载到宿主机的对应目录下
-v /home/neo4j/logs:/logs //挂载日志目录
-v /home/neo4j/conf:/var/lib/neo4j/conf //挂载配置目录
-v /home/neo4j/import:/var/lib/neo4j/import //挂载数据导入目录
–env NEO4J_AUTH=neo4j/password //设定数据库的名字的访问密码
neo4j //指定使用的镜像
5.修改配置文件
// 进入容器配置目录挂载在宿主机的对应目录,我这里是/home/neo4j/conf
cd /home/neo4j/conf
// vim编辑器打开neo4j.conf
vim neo4j.conf
// 进行以下更改
//在文件配置末尾添加这一行
dbms.connectors.default_listen_address=0.0.0.0 //指定连接器的默认监听ip为0.0.0.0,即允许任何ip连接到数据库
//修改
dbms.connector.bolt.listen_address=0.0.0.0:7687 //取消注释并把对bolt请求的监听“地址:端口”改为“0.0.0.0:7687”
dbms.connector.http.listen_address=0.0.0.0:7474 //取消注释并把对http请求的监听“地址:端口”改为“0.0.0.0:7474”
6.重启neo4j容器
Docker安装mongodb
1.docker下载运行mongodb镜像
直接在 windows powerShell中输入以下命令
docker run -p 27017:27017 -v D:/Docker/data/mongo:/data/db --name mongodb -d mongo
-p 映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过宿主机 ip:27017 访问到 mongo 的服务
-v 为设置容器的挂载目录,这里是将本机的“/data/mongo”目录挂载到容器中的/data/db中,作为mongodb 的存储目录
–name 为设置该容器的名称
-d 设置容器以守护进程方式运行
此时的mongodb还是在裸奔状态,没有账号密码;使用mongodb桌面客户端可以直接连接:
2.创建mongodb用户
在客户端中连接mongodb,新建查询,并写入以下命令
use admin;
db.createUser({
user: 'admin',
pwd: 'Aa123456',
roles: [{
role: "userAdminAnyDatabase",
db: "admin"
}]
});
3.指定auth重新运行服务
创建完用户我们就要重新启动mongo服务,并且指定auth
删除已经运行的mongo容器:docker rm -f mongodb
指定验证启动mongo容器:docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo --auth
也就是在之前的启动命令后面加上 --auth:需要密码才能访问容器服务
此时连接需要账户密码登录:
4.创建一个业务数据库和对应的读写账户
use test_db;
db.createUser({
user: 'test_db',
pwd: '123456',
roles: [{
role: "readWrite",
db: "test_db"
}]
});