windows安装docker实例

bash 复制代码
version: '3.8'

services:
  rabbitmq:
    image: rabbitmq:3.8.16-management-alpine
    container_name: rabbitmq
    restart: unless-stopped
    ports:
      - "5672:5672"
      - "15672:15672"
      - "1883:1883"
    environment:
      - RABBITMQ_DEFAULT_USER=admin
      - RABBITMQ_DEFAULT_PASS=admin123
      - RABBITMQ_DEFAULT_VHOST=/
    volumes:
      - D:/Java/docker/rabbitmq/rabbitmq_data:/var/lib/rabbitmq
      #- D:/Java/docker/rabbitmq/plugins:/plugins  # 新增插件目录挂载

    networks:
      - app-network

  cassandra:
    image: cassandra:4.0.11
    container_name: cassandra
    restart: unless-stopped
    ports:
      - "9042:9042"
      - "9160:9160"
      - "7199:7199"
    environment:
      - CASSANDRA_CLUSTER_NAME=MyCluster
      - CASSANDRA_DC=DC1
      - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch
      - CASSANDRA_NUM_TOKENS=256
      - MAX_HEAP_SIZE=2G
      - HEAP_NEWSIZE=200M
    volumes:
      - D:/Java/docker/cassandra/cassandra_data:/var/lib/cassandra
      # 暂时注释掉配置挂载
      # - ./cassandra/cql:/cql
      # - ./cassandra/cassandra.yaml:/etc/cassandra/cassandra.yaml
    networks:
      - app-network

  # Redis 6.2.7+
  redis:
    image: redis:6.2.7-alpine
    container_name: redis
    restart: unless-stopped
    ports:
      - "6379:6379"
    command: redis-server --requirepass your_redis_password --appendonly yes
    volumes:
      - D:/Java/docker/redis/redis_data:/data
      - D:/Java/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf
    environment:
      - REDIS_PASSWORD=your_redis_password
    networks:
      - app-network
    healthcheck:
      test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
      interval: 10s
      timeout: 5s
      retries: 3

  # MySQL 8.0
  mysql:
    image: mysql:8.0
    container_name: mysql
    restart: unless-stopped
    ports:
      - "3307:3307"
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: mydb
      MYSQL_USER: user
      MYSQL_PASSWORD: user_password
    volumes:
      - D:/Java/docker/mysql/mysql_data:/var/lib/mysql
      - D:/Java/docker/mysql/init:/docker-entrypoint-initdb.d
      - D:/Java/docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
    command: 
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_unicode_ci
    networks:
      - app-network
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 5

networks:
  app-network:
    driver: bridge
    # 不指定子网,让 Docker 自动分配

volumes:
  rabbitmq_data:
  cassandra_data:
  redis_data:
  mysql_data:

docker-compose.yml内容如上

镜像源配置如下

bash 复制代码
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.1ms.run",
    "https://ccr.ccs.tencentyun.com",
    "https://hub.xdark.top",
    "https://hub.fast360.xyz",
    "https://docker-0.unsee.tech",
    "https://docker.xuanyuan.me",
    "https://docker.tbedu.top",
    "https://docker.hlmirror.com",
    "https://doublezonline.cloud",
    "https://docker.melikeme.cn",
    "https://image.cloudlayer.icu",
    "https://dislabaiot.xyz",
    "https://freeno.xyz",
    "https://docker.kejilion.pro"
  ]
}

给rabbitmq安装延时插件

首先下载插件:

你需要下载与 rabbitmq:3.8.16-management-alpine 版本完全匹配的插件。

  1. 官方 GitHub 发布地址:rabbitmq-delayed-message-exchange releases

  2. 找到与 3.8.x 兼容的版本,通常是 v3.8.17

  3. 下载文件:rabbitmq_delayed_message_exchange-3.8.17.8f537ac.ez

    如果你无法访问GitHub,可以尝试使用这个国内备用链接,或将此链接复制到下载工具(如迅雷)中下载:https://objectstorage.ap-osaka-1.oraclecloud.com/n/axdwrj2s8m5s/b/rabbitmq-plugins/o/rabbitmq_delayed_message_exchange-3.8.17.8f537ac.ez

📁 步骤二:放置插件文件

将下载的 .ez 文件,放到你的 Docker 卷挂载目录:

  • 放置到D:/Java/docker/rabbitmq/plugins/

  • 确保容器内路径/plugins/rabbitmq_delayed_message_exchange-3.8.17.8f537ac.ez

复制插件文件到容器内

CMD 或 PowerShell 中,使用 docker cp 命令将文件复制到容器内的 /plugins/ 目录。

bash

复制代码
# 在 CMD/PowerShell 中执行(注意Windows路径)
docker cp D:\Java\docker\rabbitmq\plugins\rabbitmq_delayed_message_exchange-3.8.17.8f537ac.ez rabbitmq:/plugins/

执行成功不会有提示,如果报错(如文件路径不对),请检查路径。

第三步:进入容器启用插件并重启

复制完成后,需要进入容器启用插件,然后重启容器使插件生效。

bash

复制代码
# 1. 进入容器(会打开一个新的命令行)
docker exec -it rabbitmq /bin/sh

# 2. 在容器内部启用插件(你会看到成功提示)
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

# 3. 退出容器
exit

# 4. 重启容器以完全加载插件
docker restart rabbitmq

第四步:验证插件是否安装成功

容器重启后(约等10秒),运行验证命令。

bash

复制代码
docker exec rabbitmq rabbitmq-plugins list | grep delayed

如果看到 [E*] rabbitmq_delayed_message_exchange 3.8.17 (带有 E* 标志),就表示插件已成功启用

启用mqtt插件,让mqttx工具可以连接

复制代码
# 在容器中列出已启用插件,查找mqtt
docker exec rabbitmq rabbitmq-plugins list | grep mqtt
  • 如果没有任何输出 ,说明插件未启用

  • 如果看到 [ ] rabbitmq_mqtt ,表示插件存在但未启用

  • 如果看到 [E*] rabbitmq_mqtt ,表示插件已启用

如果第一步确认插件未启用,执行以下命令:

bash

复制代码
# 启用MQTT插件
docker exec rabbitmq rabbitmq-plugins enable rabbitmq_mqtt

# 重启容器使插件生效
docker restart rabbitmq

# 再次确认插件状态
docker exec rabbitmq rabbitmq-plugins list | grep mqtt
相关推荐
感谢地心引力13 小时前
安卓、苹果手机无线投屏到Windows
android·windows·ios·智能手机·安卓·苹果·投屏
lightningyang14 小时前
DVWA 在 openEuler 系统的安装部署
docker·渗透测试·openeuler·dvwa·天枢一体化虚拟仿真靶场平台
风清扬_jd15 小时前
libtorrent-rasterbar-2.0.11编译说明
c++·windows·p2p
虚心低调的tom17 小时前
Moltbot 助手在 Windows 10 上安装并连接飞书教程
windows·飞书·moltbot
Ha_To17 小时前
2026.1.28 docker安装
运维·docker·容器
北极熊~~18 小时前
emqx持久化 Docker 容器中生成的数据并打包新镜像,迁移至新机器运行
运维·docker·容器
tomiatomia18 小时前
MinIO docker 部署使用的几个坑
运维·docker·容器
x***r15119 小时前
Putty远程管理软件安装步骤详解(附首次连接教程)
windows
tod11319 小时前
Makefile进阶(上)
linux·运维·服务器·windows·makefile·进程
杨浦老苏20 小时前
Docker方式安装你的私人AI电脑助手Moltbot
人工智能·docker·ai·群晖