Docker 安装 RabbitMQ,自定义数据卷位置启动失败,分析过程

Docker 安装 RabbitMQ,自定义数据卷位置启动失败,分析过程

问题描述

  • 运行docker命令,RabbitMQ启动失败,且没有特别错误日志
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq -v /xzlawin/mydocker/rabbitmq/volume/5672/plugins:/opt/rabbitmq/plugins -v /xzlawin/mydocker/rabbitmq/volume/5672/log:/var/log/rabbitmq -v /xzlawin/mydocker/rabbitmq/volume/5672/data:/var/lib/rabbitmq -v /xzlawin/mydocker/rabbitmq/volume/5672/config:/etc/rabbitmq -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest 6c3c2a225947

分析原因

  • 容器内的文件未同步到数据卷映射的目录上,文件缺失,导致启动失败
分析步骤一,运行docker命令,使用默认数据卷位置,启动成功
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq 6c3c2a225947
  • 查看容器ID
docker ps
  • 查看数据卷信息
docker inspect [容器ID]

控制台显示

"Mounts": [
            {
                "Type": "volume",
                "Name": "rabbitmq_log",
                "Source": "/var/lib/docker/volumes/rabbitmq_log/_data",
                "Destination": "/var/log/rabbitmq",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "volume",
                "Name": "rabbitmq_plugins",
                "Source": "/var/lib/docker/volumes/rabbitmq_plugins/_data",
                "Destination": "/opt/rabbitmq/plugins",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "volume",
                "Name": "rabbitmq_config",
                "Source": "/var/lib/docker/volumes/rabbitmq_config/_data",
                "Destination": "/etc/rabbitmq",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "volume",
                "Name": "rabbitmq_data",
                "Source": "/var/lib/docker/volumes/rabbitmq_data/_data",
                "Destination": "/var/lib/rabbitmq",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            }
        ],
  • 删除容器
docker stop [容器ID]
docker ps -a [容器ID]
docker rm -f [容器ID]
分析步骤二,指定默认数据卷位置,启动成功
docker run -d \
--name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-e RABBITMQ_DEFAULT_USER=guest \
-e RABBITMQ_DEFAULT_PASS=guest \
-v /var/lib/docker/volumes/rabbitmq_config/_data:/etc/rabbitmq \
-v /var/lib/docker/volumes/rabbitmq_data/_data:/var/lib/rabbitmq \
-v /var/lib/docker/volumes/rabbitmq_log/_data:/var/log/rabbitmq \
-v /var/lib/docker/volumes/rabbitmq_plugins/_data:/opt/rabbitmq/plugins \
rabbitmq:management
  • 删除容器
docker stop [容器ID]
docker ps -a [容器ID]
docker rm -f [容器ID]
分析步骤三,指定自定义数据卷位置,启动失败
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq -v /xzlawin/mydocker/rabbitmq/volume/5672/plugins:/opt/rabbitmq/plugins -v /xzlawin/mydocker/rabbitmq/volume/5672/log:/var/log/rabbitmq -v /xzlawin/mydocker/rabbitmq/volume/5672/data:/var/lib/rabbitmq -v /xzlawin/mydocker/rabbitmq/volume/5672/config:/etc/rabbitmq -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest 6c3c2a225947
  • 删除容器
docker stop [容器ID]
docker ps -a [容器ID]
docker rm -f [容器ID]
分析步骤四,查看自定义数据卷文件,发现文件没有同步目录为空
ll /xzlawin/mydocker/rabbitmq/volume/5672/plugins
ll /xzlawin/mydocker/rabbitmq/volume/5672/log
ll /xzlawin/mydocker/rabbitmq/volume/5672/data
ll /xzlawin/mydocker/rabbitmq/volume/5672/config

解决方法

  • 将默认数据卷文件,复制到自定义数据卷位置,启动成功
解决步骤一, 将默认数据卷文件,复制到自定义数据卷位置,启动失败
  • 将默认数据卷文件,复制到自定义数据卷位置
cp -r /var/lib/docker/volumes/rabbitmq_log/_data/* /xzlawin/mydocker/rabbitmq/volume/5672/log
cp -r /var/lib/docker/volumes/rabbitmq_plugins/_data/* /xzlawin/mydocker/rabbitmq/volume/5672/plugins
cp -r /var/lib/docker/volumes/rabbitmq_config/_data/* /xzlawin/mydocker/rabbitmq/volume/5672/config
cp -r /var/lib/docker/volumes/rabbitmq_data/_data/* /xzlawin/mydocker/rabbitmq/volume/5672/data
  • 指定数据卷位置,启动失败
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq -v /xzlawin/mydocker/rabbitmq/volume/5672/plugins:/opt/rabbitmq/plugins -v /xzlawin/mydocker/rabbitmq/volume/5672/log:/var/log/rabbitmq -v /xzlawin/mydocker/rabbitmq/volume/5672/data:/var/lib/rabbitmq -v /xzlawin/mydocker/rabbitmq/volume/5672/config:/etc/rabbitmq -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest 6c3c2a225947
解决步骤二,查询日志,分析启动失败原因
  • 查询日志,发现log目录没有权限
docker logs -t --tail 50 [容器ID]
failed to open log file at '/var/log/rabbitmq/rabbit@ab5217e3f168_upgrade.log', reason: permission denied
  • 查看原数据卷目录是777权限
ll /var/lib/docker/volumes/rabbitmq_log/

显示

drwxrwxrwx 2 polkitd input 123 Jul 14 02:17 _data
  • 自定义日志数据卷目录,赋予777权限
chmod 777 /xzlawin/mydocker/rabbitmq/volume/5672/log
  • 删除容器
docker stop [容器ID]
docker ps -a [容器ID]
docker rm -f [容器ID]
解决步骤三,指定自定义数据卷位置,启动成功
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq -v /xzlawin/mydocker/rabbitmq/volume/5672/plugins:/opt/rabbitmq/plugins -v /xzlawin/mydocker/rabbitmq/volume/5672/log:/var/log/rabbitmq -v /xzlawin/mydocker/rabbitmq/volume/5672/data:/var/lib/rabbitmq -v /xzlawin/mydocker/rabbitmq/volume/5672/config:/etc/rabbitmq -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest 6c3c2a225947

相关推荐

  1. 定义服务启动失败

    2024-07-14 07:04:01       43 阅读
  2. 2024年笔记--centos docker离线安装启动失败

    2024-07-14 07:04:01       53 阅读
  3. flink:定义数据分区

    2024-07-14 07:04:01       40 阅读
  4. docker pull rabbimq镜像失败

    2024-07-14 07:04:01       18 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 07:04:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 07:04:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 07:04:01       58 阅读
  4. Python语言-面向对象

    2024-07-14 07:04:01       69 阅读

热门阅读

  1. git 学术加速

    2024-07-14 07:04:01       25 阅读
  2. element-ui 表格固定头和固定列表格错位

    2024-07-14 07:04:01       18 阅读
  3. PlantUML 教程:绘制时序图

    2024-07-14 07:04:01       22 阅读
  4. 如何做到高级Kotlin强化实战?(三)

    2024-07-14 07:04:01       27 阅读
  5. GO语言中的接口(interface)

    2024-07-14 07:04:01       27 阅读
  6. QEMU源码全解析 —— CPU虚拟化(1)

    2024-07-14 07:04:01       26 阅读
  7. 木叶村村长的通讯录

    2024-07-14 07:04:01       24 阅读