emqx docker 启动失败 5.8.2

这个是docker镜像运行的,怎么会缺少包呢?而且之前运行的没问题。

不好意思,没注意看是 docker,我刚在 mac M1 上试了下 5.8.2、5.8.3 都是可以的。
麻烦提供一下

  • 是啥操作系统和 docker 版本
  • 有没有改其它的配置(quic 的)
  • 以前是可以的,用就是哪一个版本

我是在mac m1 上运行的,15.1.1 系统。
docker 27.3.1
没改过配置。
我从13 更新到的 15,我忘记更新后有没有运行过了。。。
至少之前13的时候没问题。
docker应该在15之后更新过,之前的版本忘记了,好像是22左右。
emqx镜像一直是5.8.2.

那就奇怪了。我操作系统是15.2 (24C101)

docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.8.2

docker logs emqx -f
WARNING: Default (insecure) Erlang cookie is in use.
WARNING: Configure node.cookie in /opt/emqx/etc/emqx.conf or override from environment variable EMQX_NODE__COOKIE
WARNING: NOTE: Use the same cookie for all nodes in the cluster.
EMQX_RPC__PORT_DISCOVERY [rpc.port_discovery]: manual
EMQX_NODE__NAME [node.name]: emqx@192.168.215.2
Listener tcp:default on 0.0.0.0:1883 started.
Listener ssl:default on 0.0.0.0:8883 started.
Listener ws:default on 0.0.0.0:8083 started.
Listener wss:default on 0.0.0.0:8084 started.
Listener http:dashboard on :18083 started.
EMQX 5.8.2 is running now!

我直接就能启动成功…

我直接用命令行还这样:

我用的

与这个arm版本有关系吗?

看起来是的,你应该用 arm64
“Architecture”: “arm64”,

docker image inspect emqx
[
    {
        "Id": "sha256:11ec137a52049c15bcf89c5e4fa4f0606f563e89bc22d830a902e91dcd45f7dd",
        "RepoTags": [
            "emqx:5.8.2",
            "emqx:latest"
        ],
        "RepoDigests": [
            "emqx@sha256:caabba5cd96759df3dbf98ec84560bfac9a958efbf86f892db6bdb2dab493ba6"
        ],
        "Parent": "",
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2024-11-13T15:58:01Z",
        "DockerVersion": "",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "emqx",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "18083/tcp": {},
                "1883/tcp": {},
                "4370/tcp": {},
                "5369/tcp": {},
                "8083/tcp": {},
                "8084/tcp": {},
                "8883/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "EMQX_VERSION=5.8.2",
                "AMD64_SHA256=bd6497c8356a8d22b746788dc6b49d9447f370240724f6a32c96e9aaa82af7d7",
                "ARM64_SHA256=18bd3d6a00ec243215faa4bb7a7bf4bf468b53384cc658b5e25ab55edd189551",
                "LC_ALL=C.UTF-8",
                "LANG=C.UTF-8"
            ],
            "Cmd": [
                "/opt/emqx/bin/emqx",
                "foreground"
            ],
            "ArgsEscaped": true,
            "Image": "",
            "Volumes": {
                "/opt/emqx/data": {},
                "/opt/emqx/log": {}
            },
            "WorkingDir": "/opt/emqx",
            "Entrypoint": [
                "/usr/bin/docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": null
        },
        "Architecture": "arm64",
        "Variant": "v8",
        "Os": "linux",
        "Size": 245042231,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/4dab0fc27c1c41430e187456b688afaa4d0caa4fa25571633e5bc76fe0c1bddd/diff:/var/lib/docker/overlay2/1fe3cafac6357c76a86e4873535f3d2da02d7aac99d0366db56c3cde7c9b5bff/diff:/var/lib/docker/overlay2/7dc80a204c55c342dd3afd2bdceb98c7d433224b5f7b475d2720b07ffa8adb2b/diff",
                "MergedDir": "/var/lib/docker/overlay2/8c97b394baf9194e3698d418675a02fcb532316078175de8419e62e0f6c90de9/merged",
                "UpperDir": "/var/lib/docker/overlay2/8c97b394baf9194e3698d418675a02fcb532316078175de8419e62e0f6c90de9/diff",
                "WorkDir": "/var/lib/docker/overlay2/8c97b394baf9194e3698d418675a02fcb532316078175de8419e62e0f6c90de9/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:077584c0c75a9ed7e709ddf807892e87202ffaed0c3ada73e3ca853b425dc067",
                "sha256:5ad3ccc8d5f969af1af1ce9ce8095ec70148529c6797f3af9169e31d3b0078d8",
                "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
                "sha256:6918422e61bd8943573475b6d731d44e063da1b71ba6e25dcfe5e654f6e4fcbc"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

我用的就是arm64啊 :rofl:

你的图里面不是显示的 amd64 么。。。

额,我这眼睛。。。。。瞎了。。。。我试一下arm版本

是这个镜像不匹配的问题。。。
我本机的环境变量中DOCKER_DEFAULT_PLATFORM=linux/amd64,导致了下载的amd版本,改成arm之后,用arm版本没问题了。

但是另一个问题是:m1运行amd版本不应该报错误吧?就算有性能问题,也不应该报错误啊。

建议用对的架构构建包。再看你图中的amd64 的时候 docker 自己都提示了一个黄色危险:warning:。如果还想深究一下,我也没这方面的知识储备,只能自个去看看:eyes: