在Docker镜像中配置RabbitMQ是一场噩梦。当我将RabbitMQ作为带Fig的链接容器运行时,我可以连接到RabbitMQ接口,并成功配置vhosts
和我的Celery工作者的权限,以便连接没有问题。
但是,重新启动Docker会丢失配置设置。我该如何坚持这些设置?
我尝试过的一些事情:
/etc/rabbitmq/rabbit.config
写入Docker镜像。 RabbitMQ忽略了它。ENV HOSTNAME localhost
在我的Docker文件中设置主机名,但似乎干扰图中的Docker容器链接我做错了什么?是否有规范的Dockerfile用于为Docker链接开发目的获取已配置的RabbitMQ docker容器,最好使用Fig?
答案 0 :(得分:0)
这是一个老帖子,但值得回答。很明显,您的容器退出后不会提交。即使你是,问题也可能是你正在启动一个vanilla容器,而不是之前提交的版本。查找" docker commit"和#34; docker start",与#34; docker run"形成鲜明对比。
另请注意,Docker在将容器连接到主机时会创建临时端口。当您需要与容器内的套接字进行通信时,客户端需要与之通信的配置可能会有所不同 - 例如,每次重新启动提交的RabbitMQ容器时,客户端需要使用的容器的端口号都会发生变化。容器端口到临时主机端口的双向映射。这意味着它主要是主机必须补偿。除非您使用-p选项,或者在Dockerfile中正确配置EXPOSE,否则如果您使用的是自定义的。你正在使用一个,对吧?
答案 1 :(得分:0)