提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
Docker是一个十分好用的工具,他可以让我们使用别人搭建好的环境快速上手中间件的使用,本文记录Docker对中间件进行操作的命令,涉及到中间件内容具体如下
- rabbitmq
- mongodb
- redis
- minio
- nacos
一、rabbitmq
启动rabbitmq
docker run -d --hostname localhost --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:management
设置rabbitmq用户
进入rabbitmq容器内部
docker exec -i -t [rabbitmq容器id] bin/bash
设置外界访问用户
创建用户
rabbitmqctl add_user root 123456
对用户设置访问权限
rabbitmqctl set_permissions -p / root ".*" ".*" ".*"```
为创建的用户设置超级管理员角色
rabbitmqctl set_user_tags root administrator
查看rabbitmq中所有用户
rabbitmqctl list_users
退出rabbitmq容器内部
exit
二、mongodb
安装mongo
docker pull mongo
启动mongodb
docker run --name mongodb -p 27017:27017 -d mongo --auth
配置及使用mongodb
以admin用户进入容器
docker exec -it 51a5b5e05fe4 mongo admin
创建admin用户账号
db.createUser({ user: 'root', pwd: 'root', roles: [ { role: "root", db: "admin" } ] });
退出mongo
exit
再次进入mongo容器
mongo 5.0版本以下可以使用的命令:
docker exec -it [容器id] mongo admin
mongo 5.0版本以上可以使用的命令:
docker exec -it [容器id] mongosh admin
进行身份验证
db.auth("root","root");
navicat连接mongodb进行数据测试
注意:如果是远程连接服务器,记得在服务器的防火墙添加相关端口开放规则
三、Redis
1.安装redis
docker pull redis
2.启动及配置redis
使用Docker对redis进行操作,要先在相关目录下创建redis的配置文件,原因如下
启动前需要先创建Redis外部挂载的配置文件 ( /home/redis/conf/redis.conf )
之所以要先创建 , 是因为Redis本身容器只存在 /etc/redis 目录 , 本身就不创建 redis.conf 文件
当服务器和容器都不存在 redis.conf 文件时, 执行启动命令的时候 docker 会将 redis.conf 作为目录创建 , 这并不是我们想要的结果 。
## 创建目录
mkdir -p /home/redis/conf
## 创建文件
touch /home/redis/conf/redis.conf
启动redis命令
docker run \
-d \
--name redis \
-p 6379:6379 \
--restart unless-stopped \
-v /home/redis/data:/data \
-v /home/redis/conf/redis.conf:/etc/redis/redis.conf \
redis-server /etc/redis/redis.conf \
redis:bullseye
查看redis是否运行
### 查看Docker运行中的容器
docker ps
docker ps | grep redis
查看redis日志
docker logs redis
修改redis配置文件
vim /home/redis/conf/redis.conf
相关属性
3.使用redis
进入redis容器
### 通过 Docker 命令进入 Redis 容器内部
docker exec -it redis /bin/bash
docker exec -it redis bash
### 进入 Redis 控制台
redis-cli
### 添加一个变量为 key 为 name , value 为 bella 的内容
> set name bella
### 查看 key 为 name 的 value 值
> get name
### 或者也可以直接通过Docker Redis 命令进入Redis控制台 (上面两个命令的结合)
docker exec -it redis redis-cli
如果设置了密码,通过密码进入redis容器
## 进入Redis容器
docker exec -it redis /bin/bash
## 通过密码进入Redis控制台
>auth [你的密码]
>set [key] [value]
退出redis容器
exit
四、Nacos
1.安装Nacos
搜索Nacos镜像
docker search nacos
拉取Nacos镜像
docker pull nacos
2.启动Nacos
通过命令行启动nacos
docker run -d -e prefer_host_mode=本机ip(centos7的) -e MODE=standalone
-v /nacos/logs:/home/nacos/logs -p 28999:8848 --name nacosdemo
--restart=always nacos/nacos-server #使用的时候合成一段即可 docekr启动镜像命令
相关参数设置:
-v 某个容器的目录:映射centos上的某个目录
-p 外部访问端口:内部被映射端口
-e 环境变量设置
-d 后台运行
–name 容器的名称
–restart 重启策略
查看Nacos的相关日志
docker ps #查看已经启动的容器
docker logs --since 10m nacos的容器id #查看指定容器的输出日志
这里的10m是查看10分钟内的相关日志,具体想查看的时长可以自己设置
3.使用Nacos
访问Nacos管理平台
网址:http://{ip:8848},访问Nacos管理平台,这里选用的是28999端口
五、Minio
1.安装Minio
docker pull minio/minio
这里拉取的是最新版本的minio,如果需要其他版本的,可以先搜索minio相关镜像,查阅资料,选取一个稳定版本
搜索minio版本
docker search minio/minio
2.配置Minio
一个用来存放配置,一个用来存储上传文件的目录
启动前需要先创建Minio外部挂载的配置文件( /home/minio/config),和存储上传文件的目录(/home/minio/data)
mkdir -p /home/minio/config
mkdir -p /home/minio/data
3.启动Minio
多行模式
docker run -p 9000:9000 -p 9090:9090 \
--net=host \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /home/minio/data:/data \
-v /home/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9090" -address ":9000"
单行模式
docker run -p 9000:9000 -p 9090:9090 --net=host --name minio -d --restart=always -e "MINIO_ACCESS_KEY=minioadmin" -e "MINIO_SECRET_KEY=minioadmin" -v /home/minio/data:/data -v /home/minio/config:/root/.minio minio/minio server /data --console-address ":9090" -address ":9000"
9090端口指的是minio的客户端端口
MINIO_ACCESS_KEY :账号
MINIO_SECRET_KEY :密码(账号长度必须大于等于5,密码长度必须大于等于8位)
值得一提的是,在minio新发布的版本中,官方推荐我们使用
MINIO_ROOT_USER:账号
MINIO_ROOT_PASSWORD:账号
4.使用Minio
访问:http://{ip}:9090/login 用户名:密码 minioadmin:minioadmin
记得在服务器中开放你的客户端访问端口,如果本地使用的话则不需要
六、Nginx
1.获取Nginx
docker pull nginx 下载最新版Nginx镜像 (其实此命令就等同于 : docker pull nginx:latest )
docker pull nginx:xxx 下载指定版本的Nginx镜像 (xxx指具体版本号)
2.创建Nginx配置文件
启动前需要先创建Nginx外部挂载的配置文件( /home/nginx/conf/nginx.conf) 之所以要先创建 ,
是因为Nginx本身容器只存在/etc/nginx 目录 , 本身就不创建 nginx.conf 文件 当服务器和容器都不存在
nginx.conf 文件时, 执行启动命令的时候 docker会将nginx.conf 作为目录创建 , 这并不是我们想要的结果 。
3.启动Nginx,并将配置文件复制到宿主机
# 生成容器
docker run --name nginx -p 9001:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
4.创建Nginx,并进行运行
# 直接执行docker rm nginx或者以容器id方式关闭容器
# 找到nginx对应的容器id
docker ps -a
# 关闭该容器
docker stop nginx
# 删除该容器
docker rm nginx
# 删除正在运行的nginx容器
docker rm -f nginx
启动Nginx
docker run \
-p 9002:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest
单行模式
docker run -p 9002:80 --name nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -d nginx:latest
总结
中间件操作合集持续更新中