首页 > 代码库 > docker化rabbitmq

docker化rabbitmq

按照本人对于容器制作的一些约定,容器仅仅提供运行环境,配置和数据保存在host中的某个约定位置。

rabbitmq的一个配置文件的位置固定的,必须放在指定位置,rabbitmq-env.conf。所以把它制作到容器中。

CONFIG_FILE=/opt/runningdir/rabbitmq

MNESIA_DIR=/opt/runningdir/rabbitmqbase/mnesia/m3958numberone
LOG_BASE=/opt/runningdir/rabbitmqlogs
NODENAME=m3958numberone

阅读上面的shell配置,已经将rabbitmq相关的文件重指向到一个固定的目录中/opt/runningdir,这样一来在启动容器的时候加上 -v /opt/dockerdata/rabbitmq:/opt/runningdir,就可以在容器外直接修改配置和查看log了。

rabbitmq的数据库名称规则是,NODENAME@hostname,docker每次从docker image启动容器的时候会自动生成hostname,这样一来,你保存在主机上的数据库就会没用了,所以在创建容器的时候必须指定--hostname=rabbitmqhostone。

这样一来,只要备份了host上的数据目录,你就可以在任何服务器上重现运行的系统。还有一个功能是:

你可以新建一个运行bash的退出即销毁的交互容器,在容器里面启动rabbitmq,进行添加用户,修改密码,授权等操作,然后退出,容器随即自动销毁,但是你新增的用户不会消失。

更多详细的步骤,包括Dockerfile和一些脚本,请移步:

https://github.com/jianglibo/m3958-dockers

docker化rabbitmq