按照本人对于容器制作的一些约定,容器仅仅提供运行环境,配置和数据保存在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的数据库名称规则是,[email protected],docker每次从docker image启动容器的时候会自动生成hostname,这样一来,你保存在主机上的数据库就会没用了,所以在创建容器的时候必须指定--hostname=rabbitmqhostone。
这样一来,只要备份了host上的数据目录,你就可以在任何服务器上重现运行的系统。还有一个功能是:
你可以新建一个运行bash的退出即销毁的交互容器,在容器里面启动rabbitmq,进行添加用户,修改密码,授权等操作,然后退出,容器随即自动销毁,但是你新增的用户不会消失。
更多详细的步骤,包括Dockerfile和一些脚本,请移步:
https://github.com/jianglibo/m3958-dockers
时间: 2024-12-13 07:03:32