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 "所有镜像拉取并启动完成!"

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

相关推荐
行者全栈架构师1 小时前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_01 小时前
mac(m5)平台编译openjdk
java
唐青枫1 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马1 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261351 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261351 天前
Java 打印 Word 文档:从基础打印到高级设置
java
用户3521802454752 天前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程
东坡白菜2 天前
破局全栈:一个前端开发的Java入门实战记录(1)
java·全栈
唐青枫2 天前
Java Tomcat 实战指南:从 Servlet 容器到 Spring Boot 部署
java
wsaaaqqq2 天前
roudan:自由选择实体、灵活操作数据、快速写入数据库的 Java 框架
java