前语

docker 是现在很火的一项容器技能,能够帮助来布置咱们来快速布置各类环境

本文是在通过笔者的测验之后 总结的,即使没有学习过 docker 的基础,也能够方便地装置咱们在开发进程中需求的软件和中间件,便于大家快速构建一个运用环境。本编文章还会继续更新维护,主张 点赞保藏 哦!

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

docker软件装置

端口留意要在 运营商后台办理翻开

docker装置及装备

yum install -y docker

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

docker镜像装备

在宿主机器修正文件:

vim /etc/docker/daemon.json

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

在改文件增加如下内容

{
 "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 快速安装部署各种常用数据库和中间件(10分钟完成配置和各类软件安装)

在保存文件后需求重启 docker 载入装备文件信息

systemctl restart docker

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

各类环境装置

在此进程设计的端口映射如 -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

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

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

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

主张方法(详见上述博客)

// 履行下面两条指令:
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

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

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"

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

留意上述 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

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

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

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

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 // 开启控制台

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

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 快速安装部署各种常用数据库和中间件(10分钟完成配置和各类软件安装)

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项目哈!