Docker 快速搭建 SpringBoot 3 开发环境

前言

本文主要介绍如何使用 Docker 在本地快速搭建 SpringBoot 3 的开发环境(单机),其中包括 Redis,ZooKeeper,Kafka,Kafka-UI,Prometheus,Grafana 服务的安装。

版本说明

软件版本说明
Docker24.0.7
CentOS7.9 宿主机操作系统

Docker 安装

在本节中,将介绍 CentOS 7 如何安装 Docker。若使用的 Linux 系统是其他发行版,建议网上搜索对应的安装教程,这里不再累述。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 卸载旧版本的Docker
# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

# 添加YUM仓库
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装Docker
# yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 开机启动Docker
# systemctl enable docker

# 启动Docker
# systemctl start docker

# 查看运行状态
# systemctl status docker

Docker 镜像加速

此步骤为可选操作。针对 Docker 客户端版本大于 1.10.0 的用户,可以通过修改 daemon 的配置文件 /etc/docker/daemon.json 来使用阿里云的镜像加速。值得一提的是,使用阿里云的镜像加速之前,需要在阿里云平台注册账号,并开通容器镜像服务。

1
2
3
4
5
# 创建配置文件的目录
# mkdir -p /etc/docker

# 创建配置文件,并写入以下JSON内容
# vi /etc/docker/daemon.json
1
2
3
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
1
2
3
4
5
# 重载配置文件
# systemctl daemon-reload

# 重启Docker
# systemctl restart docker

提示

上述 https://xxxxx.mirror.aliyuncs.com 链接,是开通阿里云的镜像服务之后得到的。

创建配置文件

提示

在下述的两个配置文件中,都可以直接使用 Docker 容器的名称来替代容器的 IP 地址。

  • 创建 prometheus.yml 配置文件,用于配置 Prometheus 的监控任务。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
global:
scrape_interval: 15s
evaluation_interval: 15s

scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']

- job_name: 'redis'
static_configs:
- targets: ['redis:6379']

- job_name: 'kafka'
static_configs:
- targets: ['kafka:9092']
  • 创建 docker-compose.yml 配置文件,用于 Docker Compose 管理容器,可以根据实际需求适当更改 Redis、Zookeeper、Kafka 镜像的版本号。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
version: '3.9'

services:
redis:
image: redis:latest
container_name: redis
restart: always
ports:
- "6379:6379"
networks:
- backend

zookeeper:
image: bitnami/zookeeper:latest
container_name: zookeeper
restart: always
environment:
ALLOW_ANONYMOUS_LOGIN: yes
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
networks:
- backend

kafka:
image: bitnami/kafka:3.4.0
container_name: kafka
restart: always
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
ALLOW_PLAINTEXT_LISTENER: yes
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
networks:
- backend

kafka-ui:
image: provectuslabs/kafka-ui:latest
container_name: kafka-ui
restart: always
depends_on:
- kafka
ports:
- "9095:8080"
environment:
KAFKA_CLUSTERS_0_NAME: dev
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9092
networks:
- backend

prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: always
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
networks:
- backend

grafana:
image: grafana/grafana:latest
container_name: grafana
restart: always
depends_on:
- prometheus
ports:
- "3000:3000"
networks:
- backend

networks:
backend:
name: backend

启动 Docker 容器

1
2
3
4
5
# 创建并启动容器
docker compose up -d

# 查看容器的运行状态
docker compose ps -a

测试 Docker 容器

若可以使用以下地址访问对应的应用,则说明对应的 Docker 容器正常运行(请自行更改 IP 地址)。

应用访问地址说明
Redis192.168.1.130:6379
Zookeeper192.168.1.130:2181
Kafka192.168.1.130:9092
Kafka-UIhttp://192.168.1.130:9095浏览器可以直接访问
Grafanahttp://192.168.1.130:3000浏览器可以直接访问
Prometheushttp://192.168.1.130:9090浏览器可以直接访问

Grafana 默认登录账号

Grafana 登录的默认用户名称是 admin,用户密码是 admin。值得一提的是,首次登录 Grafana 会提示更改用户名和密码。

相关教程推荐