Docker:部署MySQL,Redis,RabbitMQ

MySQL配置

安装

# 创建Docker挂载路径
sudo mkdir -p /DockerVolume

# 下载MySQL5.7的docker镜像
docker pull mysql:5.7

# 创建MySQL容器
docker run -p 3306:3306 --name mysql -d \
-v /DockerVolume/mysql/log:/var/log/mysql \
-v /DockerVolume/mysql/data:/var/lib/mysql \
-v /DockerVolume/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD='your_password' mysql:5.7

踩过的坑:

  • 由于权限问题,需要先创建/DockerVolume目录,再进行挂载,否则无法创建成功。
  • 由于Linux命令行中,使用个别特殊字符(如:'!','$')进行解析,所以密码存在'!','$'等特殊字符时,需要用单引号。
  • 在Spring项目的配置文件'application.yml'中,如果密码存在特殊字符,也会导致密码错误。需要用单引号。

如果启动失败,可以通过以下方式启动:

```bash
1. 拉去镜像
$ sudo docker pull mysql:5.7

2. 创建目录
$ mkdir /DockerVolume/mysql/datadir -p

2. 启动镜像
$ sudo docker run --name=mysql -d  -p 3306:3306 --volume /etc/localtime:/etc/localtime --volume /DockerVolume/mysql/datadir:/var/lib/mysql:z -e MYSQL_ROOT_PASSWORD=123456  mysql:5.7
3. 配置远程连接
3.1 进入docker容器
$ sudo docker exec -it mysql /bin/bash

3.2 进入mysql,密码:123456
$ mysql -uroot -p

3.3 查询远程连接的用户配置
> select user,password,host from mysql.user;

3.4 修改权限:%代表允许所有IP访问,your_password修改为自己的密码
> grant all privileges on *.* to root@"%" identified by "your_password";

3.5 刷新权限
> flush privileges;

Redis配置

docker pull redis:5

# 创建Redis容器,${your_password}:替换为你的密码
docker run -d \
  -e REDIS_PASSWORD='${your_password}' \
  -v /DockerVolume/redis/data:/data \
  -p 6379:6379 \
  --name redis \
  redis:5 /bin/sh -c 'redis-server --appendonly yes --requirepass ${REDIS_PASSWORD}'

Rabbitmq

docker pull rabbitmq:3.7.15

docker run -p 5672:5672 -p 15672:15672 --name rabbitmq -d rabbitmq:3.7.15

## 进入rabbitmq容器,开启管理功能
docker exec -it rabbitmq /bin/bash
rabbitmq-plugins enable rabbitmq_management

打开防火墙

sudo firewall-cmd --zone=public --add-port={15672,5672,6379,3306}/tcp --permanent
sudo firewall-cmd --reload
posted @ 2021-06-30 18:41  Feng1024  阅读(155)  评论(0编辑  收藏  举报