【问题标题】:Docker rabbitmq image fails with [error] Too short cookie stringDocker rabbitmq 映像失败并显示 [error] Too short cookie string
【发布时间】:2020-08-12 21:04:45
【问题描述】:

看来我在运行 docker-desktop 的 Windows 机器上的 rabbitmq 和 rabbitmq-management docker 映像确实存在问题。

尝试运行它时,在它关闭之前会出现以下日志:

21:01:21.726 [error] Failed to write to cookie file '/var/lib/rabbitmq/.erlang.cookie': enospc

21:01:22.355 [error] Too short cookie string

21:01:22.356 [error] Too short cookie string

21:01:23.161 [error] Too short cookie string

21:01:23.162 [error] Too short cookie string

21:01:23.783 [error] Too short cookie string

21:01:23.784 [error] Too short cookie string

21:01:24.405 [error] Too short cookie string

21:01:24.406 [error] Too short cookie string

21:01:25.027 [error] Too short cookie string

21:01:25.028 [error] Too short cookie string

21:01:25.661 [error] Too short cookie string

21:01:25.662 [error] Too short cookie string

21:01:26.281 [error] Too short cookie string

21:01:26.282 [error] Too short cookie string

21:01:26.910 [error] Too short cookie string

21:01:26.911 [error] Too short cookie string

21:01:27.533 [error] Too short cookie string

21:01:27.534 [error] Too short cookie string

21:01:28.161 [error] Too short cookie string
Distribution failed: {{:shutdown, {:failed_to_start_child, :auth, {'Too short cookie string', [{:auth, :init_cookie, 0, [file: 'auth.erl', line: 290]}, {:auth, :init, 1, [file: 'auth.erl', line: 144]}, {:gen_server, :init_it, 2, [file: 'gen_server.erl', line: 417]}, {:gen_server, :init_it, 6, [file: 'gen_server.erl', line: 385]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}]}}}, {:child, :undefined, :net_sup_dynamic, {:erl_distribution, :start_link, [[:"rabbitmqcli-47-rabbit@90cc77cefcb8", :shortnames, 15000], false, :net_sup_dynamic]}, :permanent, 1000, :supervisor, [:erl_distribution]}}
Configuring logger redirection

21:01:29.717 [error]
21:01:29.715 [error] Too short cookie string
21:01:29.715 [error] Supervisor net_sup had child auth started with auth:start_link() at undefined exit with reason "Too short cookie string" in auth:init_cookie/0 line 290 in context start_error
21:01:29.715 [error] CRASH REPORT Process <0.201.0> with 0 neighbours crashed with reason: "Too short cookie string" in auth:init_cookie/0 line 290
21:01:29.719 [error] BOOT FAILED
BOOT FAILED
21:01:29.719 [error] ===========
===========
21:01:29.719 [error] Exception during startup:
Exception during startup:
21:01:29.720 [error]

21:01:29.720 [error]     supervisor:children_map/4 line 1171
    supervisor:children_map/4 line 1171
    supervisor:'-start_children/2-fun-0-'/3 line 355
21:01:29.721 [error]     supervisor:'-start_children/2-fun-0-'/3 line 355
21:01:29.721 [error]     supervisor:do_start_child/2 line 371
    supervisor:do_start_child/2 line 371
21:01:29.721 [error]     supervisor:do_start_child_i/3 line 385
    supervisor:do_start_child_i/3 line 385
21:01:29.721 [error]     rabbit_prelaunch:run_prelaunch_first_phase/0 line 27
    rabbit_prelaunch:run_prelaunch_first_phase/0 line 27
21:01:29.721 [error]     rabbit_prelaunch:do_run/0 line 111
    rabbit_prelaunch:do_run/0 line 111
21:01:29.722 [error]     rabbit_prelaunch_dist:setup/1 line 15
    rabbit_prelaunch_dist:setup/1 line 15
    rabbit_prelaunch_dist:duplicate_node_check/1 line 51
21:01:29.722 [error]     rabbit_prelaunch_dist:duplicate_node_check/1 line 51
21:01:29.722 [error] error:{badmatch,
error:{badmatch,
          {error,
21:01:29.722 [error]           {error,
21:01:29.722 [error]               {{shutdown,
              {{shutdown,
21:01:29.722 [error]                    {failed_to_start_child,auth,
                   {failed_to_start_child,auth,
21:01:29.723 [error]                        {"Too short cookie string",
                       {"Too short cookie string",
21:01:29.723 [error]                         [{auth,init_cookie,0,[{file,"auth.erl"},{line,290}]},
                        [{auth,init_cookie,0,[{file,"auth.erl"},{line,290}]},
21:01:29.723 [error]                          {auth,init,1,[{file,"auth.erl"},{line,144}]},
                         {auth,init,1,[{file,"auth.erl"},{line,144}]},
21:01:29.723 [error]                          {gen_server,init_it,2,
                         {gen_server,init_it,2,
                             [{file,"gen_server.erl"},{line,417}]},
21:01:29.723 [error]                              [{file,"gen_server.erl"},{line,417}]},
21:01:29.724 [error]                          {gen_server,init_it,6,
                         {gen_server,init_it,6,
                             [{file,"gen_server.erl"},{line,385}]},
21:01:29.724 [error]                              [{file,"gen_server.erl"},{line,385}]},
21:01:29.724 [error]                          {proc_lib,init_p_do_apply,3,
                         {proc_lib,init_p_do_apply,3,
21:01:29.724 [error]                              [{file,"proc_lib.erl"},{line,226}]}]}}},
                             [{file,"proc_lib.erl"},{line,226}]}]}}},
21:01:29.724 [error]                {child,undefined,net_sup_dynamic,
               {child,undefined,net_sup_dynamic,
21:01:29.725 [error]                    {erl_distribution,start_link,
                   {erl_distribution,start_link,
21:01:29.725 [error]                        [[rabbit_prelaunch_510@localhost,shortnames],
                       [[rabbit_prelaunch_510@localhost,shortnames],
21:01:29.725 [error]                         false,net_sup_dynamic]},
                        false,net_sup_dynamic]},
21:01:29.725 [error]                    permanent,1000,supervisor,
                   permanent,1000,supervisor,
21:01:29.725 [error]                    [erl_distribution]}}}}
21:01:29.726 [error]
                   [erl_distribution]}}}}

21:01:30.726 [error] Supervisor rabbit_prelaunch_sup had child prelaunch started with rabbit_prelaunch:run_prelaunch_first_phase() at undefined exit with reason {badmatch,{error,{{shutdown,{failed_to_start_child,auth,{"Too short cookie string",[{auth,init_cookie,0,[{file,"auth.erl"},{line,290}]},{auth,init,1,[{file,"auth.erl"},{line,144}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,417}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,385}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,226}]}]}}},{child,undefined,net_sup_dynamic,{erl_distribution,start_link,[[rabbit_prelaunch_510@localhost,shortnames],false,net_sup_dynamic]},...}}}} in context start_error
21:01:30.726 [error] CRASH REPORT Process <0.153.0> with 0 neighbours exited with reason: {{shutdown,{failed_to_start_child,prelaunch,{badmatch,{error,{{shutdown,{failed_to_start_child,auth,{"Too short cookie string",[{auth,init_cookie,0,[{file,"auth.erl"},{line,290}]},{auth,init,1,[{file,"auth.erl"},{line,144}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,417}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,385}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,226}]}]}}},{child,undefined,net_sup_dynamic,{erl_distribution,start_link,[[rabbit_prelaunch_510@localhost,...],...]},...}}}}}},...} in application_master:init/4 line 138
{"Kernel pid terminated",application_controller,"{application_start_failure,rabbitmq_prelaunch,{{shutdown,{failed_to_start_child,prelaunch,{badmatch,{error,{{shutdown,{failed_to_start_child,auth,{\"Too short cookie string\",[{auth,init_cookie,0,[{file,\"auth.erl\"},{line,290}]},{auth,init,1,[{file,\"auth.erl\"},{line,144}]},{gen_server,init_it,2,[{file,\"gen_server.erl\"},{line,417}]},{gen_server,init_it,6,[{file,\"gen_server.erl\"},{line,385}]},{proc_lib,init_p_do_apply,3,[{file,\"proc_lib.erl\"},{line,226}]}]}}},{child,undefined,net_sup_dynamic,{erl_distribution,start_link,[[rabbit_prelaunch_510@localhost,shortnames],false,net_sup_dynamic]},permanent,1000,supervisor,[erl_distribution]}}}}}},{rabbit_prelaunch_app,start,[normal,[]]}}}"}
Kernel pid terminated (application_controller) ({application_start_failure,rabbitmq_prelaunch,{{shutdown,{failed_to_start_child,prelaunch,{badmatch,{error,{{shutdown,{failed_to_start_child,auth,{"Too

Crash dump is being written to: erl_crash.dump...

我已经使用这张图片几个月了,没有任何问题,但突然之间它不再工作了。

我也尝试在我的树莓派上运行它。原来它在那里工作,所以它对我来说更像是一个本地的东西,这有点奇怪,因为 docker 基本上是为了避免这些问题。

我还尝试将RABBITMQ_ERLANG_COOKIE 环境变量设置为长名称,但没有成功。有什么想法吗?

【问题讨论】:

    标签: docker rabbitmq


    【解决方案1】:

    我遇到了完全相同的错误,并听从了欧文布朗的建议。不幸的是,删除 rabbitmq 图像并不能解决我的问题,但删除所有其他冗余图像(尤其是大尺寸的图像)也为我解决了问题。

    如果您想知道所有图片的大小,您可以查看这些统计信息

    docker system df

    编辑:

    几个小时后我再次遇到同样的问题,我再次研究并发现this answer 解决了我的问题。

    比删除图像更重要的是使用以下方法删除卷:

    docker volume rm $(docker volume ls -f dangling=true -q) // 删除所有卷

    【讨论】:

      【解决方案2】:

      RabbitMQ 好像没有空间来写cookie了: 21:01:21.726 [error] Failed to write to cookie file '/var/lib/rabbitmq/.erlang.cookie': enospc

      也许您在 docker 中有一些空间限制,或者您实际上在主机中没有剩余空间?

      【讨论】:

      • 是的,这是我的问题。不知何故,我的 docker-desktop 没有任何空间了。
      【解决方案3】:

      使用docker run rabbitmq:management 单独启动rabbitmq。

      如果仍然出现“Failed to write to cookie file '/var/lib/rabbitmq/.erlang.cookie': enospc”错误,则问题是因为 RabbitMQ 使用的文件已损坏。

      由于容器在错误发生后立即退出,并且容器正在从缓存的 docker 映像启动,因此您将无法进入容器来修复问题。相反,您需要删除缓存的图像。

      1. 删除最初问题的原因,这可能是分配给 Docker 的内存不足。您可以通过 Docker 的实用程序删除图像或分配更多内存。
      2. 删除rabbitmq docker镜像 docker images | grep rabbit 然后 run docker rmi &lt;image_id(s)&gt; 对应每个图像 ID。
      3. 删除所有缓存的图像。 使用$ docker images --filter "dangling=true 列出所有图像将 然后,使用$ docker rmi $(docker images -f "dangling=true" -q) 删除它们

      最后,使用docker run rabbitmq:management 再次运行rabbitmq。如果它运行无误,您就可以重新开始工作了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-08
        • 2017-08-27
        • 1970-01-01
        • 2019-12-02
        • 1970-01-01
        • 2022-12-28
        • 1970-01-01
        相关资源
        最近更新 更多