使用 Docker 快速安装部署各种常用数据库和中间件(无bug版,10分钟完成配置和各类软件安装)

前言

docker 是现在很火的一项容器技术,能够帮助来部署我们来快速部署各类环境。

本文是在通过笔者的 测试之后 总结的,即便没有学习过 docker 的基础,也能够快捷地安装我们在开发过程中需要的软件和中间件,便于大家快速构建一个应用环境。本编文章还会继续更新维护,建议 点赞收藏 哦!

使用 Docker 快速安装部署各种常用数据库和中间件(无bug版,10分钟完成配置和各类软件安装)_第1张图片

目录

docker软件安装

docker安装及配置

docker镜像配置

各类环境安装

Jenkins安装

minIO安装

mysql安装

redis安装

rabbitMQ安装

nacos安装

docker 部署 SpringBoot项目

docker常用参数理解


docker软件安装

端口注意要在 运营商后台管理打开

docker安装及配置

yum install -y docker

docker镜像配置

在宿主机器编辑文件:

vim /etc/docker/daemon.json

在改文件添加如下内容

{
    "registry-mirrors": [
        "https://ustc-edu-cn.mirror.aliyuncs.com",
        "http://hub-mirror.c.163.com",
        "https://registry.aliyuncs.com",
        "https://docker.mirrors.ustc.edu.cn"
    ]
}

在保存文件后需要重启 docker 载入配置文件信息

systemctl restart docker

各类环境安装

在此过程设计的端口映射如 -p 3306:3306 ,前面为 服务器端口,后面为 容器端口

涉及到的端口为避免无法访问等情况,需要在服务器运用商 安全组 放行端口,以及服务器防火墙 开放端口。

防火墙端口相关命令:

1.查看所有放行的端口
firewall-cmd --list-all

2.查看端口是否被占用
netstat -tunpl | grep 端口号

3.开放单个端口(开放后需要要重启防火墙才生效)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#(添加 --permanent 参数表示永久生效,不加为单次有效(重启失效))

4.开放多个端口(开放后需要要重启防火墙才生效)
firewall-cmd --zone=public --add-port=20000-29999/tcp --permanent

5.关闭端口(关闭后需要要重启防火墙才生效)
firewall-cmd --zone=public --remove-port=8080/tcp --permanent

6.查看端口是否打开
firewall-cmd --zone= public --query-port=80/tcp

7.查看防火墙状态
systemctl status firewalld

8.开启防火墙
systemctl start firewalld

9.关闭防火墙
systemctl stop firewalld

Jenkins安装

不建议使用Docker安装Jenkins,因为使用Jenkins的时候一般会调用外部程序,比如Maven、Docker、JDK、Nodejs等,所以我们最好直接安装在本机上,以避免不必要的麻烦。

所以Jenkins安装可以参考博客:Linux 安装 Jenkins

docker安装方式

// 拉取镜像
docker pull jenkins/jenkins:2.60.3
// 创建Jenkins挂载目录并授权权限,这样我们就可以很方便地对容器内的配置文件进行修改
mkdir -p /data/jenkins_home/
chmod 777 /data/jenkins_home/
// 启动容器
docker run -d -p 8080:8080 \
-u root \
-v /data/jenkins_home:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
--name jenkins \
jenkins/jenkins

建议方式(详见上述博客)

// 执行下面两条命令:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
// 安装jenkins
yum -y install jenkins
// 修改Jenkins端口号(默认为 8080)(两处地方需要修改)
vim /etc/sysconfig/jenkins
修改值 JENKINS_PORT=8080
vim /usr/lib/systemd/system/jenkins.service
Envirment="JENKINS_PORT=8080"
# 重新加载配置文件
systemctl daemon-reload
# 重启jenkins
systemctl restart jenkins
ps:如果启动失败大概理是java环境问题,需要jdk11
 
  

minIO安装

docker pull minio/minio
// 挂载目录
mkdir -p ./docker/minio/data
mkdir -p ./docker/minio/config
// 启动容器
docker run -p 9000:9000 -p 9001:9001 --name minio \
  --privileged=true \
  --restart=always \
  -e "MINIO_ROOT_USER=username" \
  -e "MINIO_ROOT_PASSWORD=password" \
  -v /root/docker/data:/data \
  -v /root/docker/config:/root/.minio \
-d minio/minio server /data --console-address ":9001" --address ":9000"
注意上述 username 和 password 要替换成自己的

mysql安装

// 拉取容器
docker pull mysql:8.0
// 启动容器
docker run -id \
-p 3306:3306 \
--name=docker_mysql \
--privileged=true \
--restart=always \
-v /root/mysql/conf:/etc/mysql/conf.d \
-v /root/mysql/logs:/logs \
-v /root/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0
 
  

redis安装

docker pull redis
启动容器  /// redis密码在配置文件配置
docker run -id \
-p 6379:6379 \
--name docker_redis \
--restart=always \
-v /docker/redis/redis.conf:/etc/redis/redis.conf \
-v /docker/redis/data:/data \
-d redis

ps:redis的配置文件需要在官网下载,简单部署可以不需要载入
​

rabbitMQ安装

docker pull rabbitmq:3.7-management
docker run -id --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.7-management
5672是项目中连接rabbitmq的端口(我这里映射的是5672),15672是rabbitmq的web管理界面端口(我映射为15672) 初始账号:guest 初始密码:guest 
​
// 启动之后如果访问不了控制台需要授权
docker exec -it ********(容器id) /bin/bash // 进入容器
rabbitmq-plugins enable rabbitmq_management // 开启控制台
 
  

nacos安装

docker pull nacos/nacos-server
// 启动容器
docker run -d \
-p 8848:8848 -e MODE=standalone \
--privileged=true \
-e PREFER_HOST_MODE=hostname \
-v /root/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
-v /root/nacos/logs:/home/nacos/logs \
--restart always \
--name nacos nacos/nacos-server

docker 部署 SpringBoot项目

这里可以参考我的另一篇博客,有详细的介绍

手把手用图文教你从 0 到 1 使用 Docker 部署一个 SpringBoot 项目

docker常用参数理解

-d 后台运行,并返回容器id
-v 定义一个数据卷,目录挂载
-p 进行端口映射 前面服务器端口
-it: 以交互模式运行容器;
-e username="ritchie": 设置环境变量;
--network=host 设置网络与宿主机相同,可能docker内部连接不到 nacos、mysql等

后记

虽然说跟着敲能够完成对应内容的部署,不过笔者还是建议学习一下 docker 及相关概念的理解,有着更好的理论知识时在应对各种bug才能刀枪不入。

最后可以看看我的开源项目: i集大校园(类似于一个定位为校园里的微博)

i集大校园软件服务端,基于SpringCloud Alibaba 微服务组件及部分分布式技术实现服务之间关联及协作进行前后端分离项目实现。计划实现微信小程序和app两端同步。

使用技术栈为:Spring Boot、Spring Cloud Alibaba、rabbitMQ、JWT、minIO、mysql、redis、ES、docker、Jenkins、mybatis-plus

前端将使用 微信小程序 编写。

欢迎一起参加开源贡献和star项目哈!

你可能感兴趣的:(工具,docker,运维,mysql,redis)