Fork me on Gitee

docker配置nginx/mysql/redis/RabbitMQ

1. Docker安装Nginx

1.1 安装

  • 下载nginx镜像
docker pull nginx
  • 查看镜像
docker ps

image-20220309172203414

  • 配置挂载目录
# 创建www目录
mkdir -p /opt/nginx/www
# 创建日志目录
mkdir -p /opt/nginx/logs
# 创建配置文件目录
mkdir -p /opt/nginx/conf
# 创建conf.d
mkdir -p /opt/nginx/conf.d
  • 启动nginx容器
docker run --name nginx -p 9091:80 -d nginx
# 查看容器状态
docker ps

image-20220309173142649

  • 拷贝nginx配置配置文件
# 拷贝nginx.conf
docker cp ecfed51d8947:/etc/nginx/nginx.conf /opt/nginx/conf
# 拷贝default.conf
docker cp ecfed51d8947:/etc/nginx/conf.d/default.conf /opt/nginx/conf.d/

image-20220309173424404

  • 停止镜像并移除测试镜像
docker stop nginx
docker rm ecfed51d8947

image-20220309173545867

  • 开启nginx容器
docker run  --name nginx -d --privileged=true -p 9091:80 -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/var/log/nginx -v $PWD/www:/usr/share/nginx/html -v $PWD/conf.d:/etc/nginx/conf.d nginx

image-20220309173800742

1.2 测试

将测试html放入www根目录下

vi index.html

<!DOCTYPE html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>nginx测试页</title>
</head>
<body> 
    <h3>Welcome enter nginx</h3> 
</body>

重启nginx容器docker restart nginx,访问http://ip:9091/ ,可以看到测试html页面内容

image-20220309174549056

1.3 转发配置

对于server节点的配置,可以在conf.d/default.conf中进行配置

例如,将以/prod-api/请求转发到另一台部署Spring-cloud 的网关地址。将前端代码直接放入www文件夹

		location / {
				# 将前端打包后放入www文件夹
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    # 转发地址
    location /prod-api/{
        proxy_pass  http://192.168.2.248:8612/;
    }

2. Docker安装MySQL

2.1 安装

  • 查询mysql镜像
docker search mysql

image-20220309162714857

  • 下载mysql镜像
# 未指定版本即下载最新镜像
docker pull mysql
  • 查看镜像
docker images

image-20220309162841059

  • 创建挂载文件夹
# 分别创建conf/logs/data目录
mkdir -p /opt/mysql/conf
mkdir -p /opt/mysql/logs
mkdir -p /opt/mysql/data

image-20220309163305572

  • 启动mysql容器
docker run  --name mysqlserver -d --privileged=true -p 3306:3306 -v $PWD/conf/:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/logs:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql

-v 表示映射容器内配置文件

-d 表示容器后台运行仅返回容器ID

-p 3306:3306 前面的3306是映射到宿主机的端口号,后面的3306是镜像内端口号

--e 用于设置环境变量

末尾的mysql 为镜像名称

查看容器状态

docker ps -a

image-20220309164555329

  • 拷贝配置文件
# 容器id 可通过docker ps查看
docker cp de8f4d794ad4:/etc/mysql/my.cnf /opt/mysql/conf/
  • 进入mysql容器,并登录mysql
docker exec -it mysqlserver /bin/bash
mysql -uroot -p

image-20220309164846830

  • 允许远程访问
# 查看授权端口用户信息
select host,user from user;
# 修改
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 刷新权限
flush privileges;

image-20220309165214815

2.2 测试

image-20220309165314552

查看docker容器日志

docker logs 容器id/容器名

image-20220309165510329

  • 优化最大连接数
# 查看当前mysql最大连接数
show variables like 'max_connections'

image-20220309170654405

修改my.cnf文件,改为200。

cd /opt/mysql/conf
vi my.cnf


[mysqld]
max_connections=280

重启mysql服务

docker restart mysqlserver

再次查看最大连接数

image-20220309171127507

3. Docker安装Redis

3.1 安装

  • 下载镜像
docker pull redis
  • 查看镜像
docker images

image-20220310090356505

  • 创建配置文件夹
# 配置文件
mkdir -p /opt/redis/conf
# 数据文件
mkdir -p /opt/redis/data
  • 拉取redis.conf配置文件
# 进入配置目录
cd /opt/redis/conf
# 获取配置文件
wget http://download.redis.io/redis-stable/redis.conf
# 配置redis.conf
vi redis.conf


bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程(可选),改为yes会使配置文件方式启动redis失败
dir  ./ #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化(可选)
  • 启动redis
docker run -p 6379:6379 --name redis -v $PWD/conf/redis.conf:/etc/redis/redis.conf -v $PWD/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
  • -p 6379:6379 端口映射:前表示主机部分,后表示容器部分
  • --name redis 指定该容器名称,方便查看和操作
  • -v 挂载目录,规则与端口映射类似
  • -d redis 表示后台启动redis
  • redis -server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载目录下文件
  • Appendonly yes 开启redis持久化

查看redis状态

docker ps 

image-20220310093514305

  • 进入redis
docker exec -it redis /bin/bash

image-20220310093716591

3.1测试

测试远程连接redis

image-20220310093901984

4. Docker安装Rabbit MQ

4.1 安装

进入hub.docker.com.搜索关键字rabbitmq,选择第一个offical Image,官方镜像。

image-20220311155118170

点击进入后,选择带有“mangement”的版本(包含web管理页面);

image-20220311155316239

  • 拉取镜像
# 拉取镜像
docker pull rabbitmq:3.9.13-management
# 查看镜像
docker images

image-20220311172930470

  • 创建目录
# 创建数据目录
mkdir -p /opt/rabbitmq/data
  • 创建并启动容器
cd /opt/rabbitmq/
docker run -d --name rabbitmq3.9.13 -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 rabbitmq:3.9.13-management

image-20220311180103106

4.2 测试

登录rabbit mq管理wen界面: http://ip:15672,根据启动配置的用户名登录

image-20220311180229988

参考文章

  1. docker 安装redis

  2. docker 安装rabbitMQ

posted @ 2022-03-03 21:04  shine-rainbow  阅读(205)  评论(0编辑  收藏  举报