Java开发常用中间件,Docker安装。

一、数据库

MySQL 5.7

bash 复制代码
# 拉取
docker pull mysql:5.7

# 启动
docker run -d --name mysql57 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=testdb -v mysql57_data:/var/lib/mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

MySQL 8.0

bash 复制代码
# 拉取
docker pull mysql:8.0

# 启动
docker run -d --name mysql80 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=testdb -v mysql80_data:/var/lib/mysql mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

Redis 7.2

bash 复制代码
# 拉取
docker pull redis:7.2

# 启动
docker run -d --name redis72 -p 6379:6379 -v redis72_data:/data redis:7.2 redis-server --appendonly yes --requirepass 123456

Elasticsearch 8.12.0

bash 复制代码
# 拉取
docker pull elasticsearch:8.12.0

# 创建网络并启动
docker network create elk-network && docker run -d --name elasticsearch --network elk-network -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "xpack.security.enabled=false" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -v es_data:/usr/share/elasticsearch/data elasticsearch:8.12.0

Kibana 8.12.0

bash 复制代码
# 拉取
docker pull kibana:8.12.0

# 启动
docker run -d --name kibana --network elk-network -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 kibana:8.12.0

二、消息队列

RabbitMQ 3.13 (带管理界面)

bash 复制代码
# 拉取
docker pull rabbitmq:3.13-management

# 启动
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin123 -v rabbitmq_data:/var/lib/rabbitmq rabbitmq:3.13-management

RocketMQ 5.3.0 + Dashboard

bash 复制代码
# 拉取
docker pull apache/rocketmq:5.3.0
docker pull apacherocketmq/rocketmq-dashboard:latest

# 启动 NameServer
docker run -d --name rocketmq-namesrv -p 9876:9876 -e "JAVA_OPT_EXT=-Xms256m -Xmx256m" apache/rocketmq:5.3.0 sh mqnamesrv

# 启动 Broker
docker run -d --name rocketmq-broker -p 10911:10911 -p 10909:10909 -e "NAMESRV_ADDR=localhost:9876" -e "JAVA_OPT_EXT=-Xms512m -Xmx512m -Xmn256m" -e "BROKER_IP1=127.0.0.1" -v rocketmq_broker:/home/rocketmq/store apache/rocketmq:5.3.0 sh mqbroker -c /home/rocketmq/rocketmq-5.3.0/conf/broker.conf

# 启动 Dashboard
docker run -d --name rocketmq-dashboard -p 8088:8080 -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876" apacherocketmq/rocketmq-dashboard:latest

Kafka (Bitnami版本)

bash 复制代码
# 拉取
docker pull bitnami/kafka:3.7

# 启动 ZooKeeper
docker run -d --name zookeeper -p 2181:2181 -e ALLOW_ANONYMOUS_LOGIN=yes bitnami/zookeeper:latest

# 启动 Kafka
docker run -d --name kafka -p 9092:9092 -e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -e ALLOW_PLAINTEXT_LISTENER=yes -v kafka_data:/bitnami/kafka bitnami/kafka:3.7

ActiveMQ 5.18.3

bash 复制代码
# 拉取
docker pull apache/activemq:5.18.3

# 启动
docker run -d --name activemq -p 61616:61616 -p 8161:8161 -e ACTIVEMQ_ADMIN_LOGIN=admin -e ACTIVEMQ_ADMIN_PASSWORD=admin123 -v activemq_data:/data apache/activemq:5.18.3

三、微服务核心

Nacos Server 2.3.0

bash 复制代码
# 拉取
docker pull nacos/nacos-server:v2.3.0

# 启动
docker run -d --name nacos -p 8848:8848 -p 9848:9848 -e MODE=standalone -e JVM_XMS=256m -e JVM_XMX=256m -v nacos_data:/home/nacos/data nacos/nacos-server:v2.3.0

docker run -d --name nacos -p 8848:8848 -p 9848:9849 -p 9849:9849 -e MODE=standalone -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=host.docker.internal -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=ry-config -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 --restart=always nacos/nacos-server:v2.3.0

Sentinel Dashboard

bash 复制代码
# 拉取
docker pull bladex/sentinel-dashboard:latest

# 启动
docker run -d --name sentinel -p 8080:8080 -e SERVER_PORT=8080 bladex/sentinel-dashboard:latest

四、文件存储

MinIO

bash 复制代码
# 拉取
docker pull minio/minio:latest

# 启动
docker run -d --name minio -p 9000:9000 -p 9001:9001 -e MINIO_ROOT_USER=admin -e MINIO_ROOT_PASSWORD=admin123456 -v minio_data:/data minio/minio:latest server /data --console-address ":9001"

Nginx (Alpine)

bash 复制代码
# 拉取
docker pull nginx:alpine

# 启动
docker run -d --name nginx -p 80:80 -p 443:443 -v nginx_html:/usr/share/nginx/html -v nginx_conf:/etc/nginx/conf.d nginx:alpine

五、监控

Prometheus

bash 复制代码
# 拉取
docker pull prom/prometheus:latest

# 创建配置文件并启动
mkdir -p /tmp/prometheus && cat > /tmp/prometheus/prometheus.yml <<EOF && docker run -d --name prometheus -p 9090:9090 -v /tmp/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v prometheus_data:/prometheus prom/prometheus:latest
global:
  scrape_interval: 15s
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
EOF

Grafana

bash 复制代码
# 拉取
docker pull grafana/grafana:latest

# 启动
docker run -d --name grafana -p 3000:3000 -e GF_SECURITY_ADMIN_PASSWORD=admin123 -v grafana_data:/var/lib/grafana grafana/grafana:latest

六、一键执行脚本(拉取 + 启动)

bash 复制代码
#!/bin/bash

# 拉取所有镜像
echo "开始拉取镜像..."
docker pull mysql:5.7
docker pull redis:7.2
docker pull rabbitmq:3.13-management
docker pull nacos/nacos-server:v2.3.0
docker pull minio/minio:latest
docker pull grafana/grafana:latest

# 启动所有容器
echo "开始启动容器..."
docker run -d --name mysql57 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v mysql57_data:/var/lib/mysql mysql:5.7 --character-set-server=utf8mb4
docker run -d --name redis72 -p 6379:6379 -v redis72_data:/data redis:7.2 redis-server --appendonly yes --requirepass 123456
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin123 -v rabbitmq_data:/var/lib/rabbitmq rabbitmq:3.13-management
docker run -d --name nacos -p 8848:8848 -p 9848:9848 -e MODE=standalone -v nacos_data:/home/nacos/data nacos/nacos-server:v2.3.0
docker run -d --name minio -p 9000:9000 -p 9001:9001 -e MINIO_ROOT_USER=admin -e MINIO_ROOT_PASSWORD=admin123456 -v minio_data:/data minio/minio:latest server /data --console-address ":9001"
docker run -d --name grafana -p 3000:3000 -e GF_SECURITY_ADMIN_PASSWORD=admin123 -v grafana_data:/var/lib/grafana grafana/grafana:latest

echo "所有镜像拉取并启动完成!"

每个服务都包含了独立的拉取和启动命令,可以直接复制使用。

相关推荐
许泽宇的技术分享2 小时前
别再把 AI Agent 当“会聊天的脚本”:Hermes Agent 源码级拆解(架构、框架、实战、趋势,一文吃透)
java·linux·网络
程序员三明治2 小时前
【AI】Prompt 工程入门:从五要素框架到 RAG 生产级 Prompt 模板与 Java 实战
java·人工智能·后端·大模型·llm·prompt·agent
旷世奇才李先生2 小时前
React 18\+Next\.js 14实战:服务端渲染与跨端开发全指南
java·人工智能·python
跨境技工小黎2 小时前
亚马逊数据抓取怎么做?2026最新实战教程
java·大数据·数据库
罗超驿2 小时前
2.LeetCode 1089. 复写零——双指针解法学习笔记
java·算法·leetcode
青山师2 小时前
Java枚举深度解析:从类型安全到JVM级单例模式
java·jvm·枚举·javase·java面试·java核心
雨辰AI2 小时前
SpringBoot3 + 人大金仓 V9 全栈日志实战:Logback + Loki + Filebeat 构建统一日志平台
java·数据库·后端·云原生·eureka·logback·政务
超梦dasgg2 小时前
java微服务项目的架构和链路串联
java·微服务·架构
SamDeepThinking2 小时前
打造高效团队的四个关键动作
java·后端·团队管理