首页 > 经验记录 > 分享下个人开发常用的 docker-compose 模板文件 (Tomcat、Redis、ZK、MySQL、Rabbit、Mongo)

分享下个人开发常用的 docker-compose 模板文件 (Tomcat、Redis、ZK、MySQL、Rabbit、Mongo)

现在各种工具、中间件都是在用docker部署了。 安装了docker后 一行run命令就搞定了,确实也方便。

不过有点难受的是有些中间件的配置, 主要是环境变量我根本就不记得。 最近又要在别的服务器上用 docker 部署几个东西, 我就想着每次都临时去自己的旧记录(我有个文档记录) 里翻配置也怪麻烦的。

想了想终归还是写篇博客纯当记录, 虽说是纯使用向没什么内涵, 但多少还是有些价值的。 找这些配置实在是麻烦。 我这 docker-compose 模板文件都给你安排的明明白白了。

都是经过验证的模板编排文件, ctrl c+ctrl v 然后改下 .env 环境变量就能直接启起来,还是很香的。

注: 这篇文章排版有点奇怪的, 因为这是我用Markdown写的然后复制到WP里的, 显示的会有点诡异。 代码指定不了样式, 就这样吧 (摊手)。

环境:

docker 使用阿里云(其他的也可以, 反正最好是国内的) 镜像加速的命令 (ubuntu/centos 限定)

也可以不用命令,手动创建 /etc/docker/daemon.json 文件, 复制这个json进去也行

docker-compose install:

说明

  • docker-compose 命令格式:
  • -f 可以指定使用的 Compose 模板文件,默认为 docker-compose.yml ; 为了方便,我都用的默认的。
  • docker-compose 执行的命令默认都是以当前所在文件夹为环境的, 所以每个容器都建个单独的文件夹
  • Compose 模板文件支持读取主机的系统环境变量和当前目录下的 .env 文件中的变量。为了方便换配置,我每个模板都使用了 .env 文件

例子(bash操作):

注:

  • 文件放好后,整个启停流程里就只涉及到 4/5 这两个命令来回用了
  • docker的命令 start | stop | rm | logs | ps 之类的 docker-compose 都可以用。 好处是不用指定容器名字/hash, 只要在那个目录里边就行了。
  • 不过 docke-compose 命令他操作的是模板文件描述的所有容器。比如你这个docker-compose.yml 创建了个zookeeper集群总共3个容器, 你用 docker-compose logs -f 会同时看到这三个容器的日志(会有颜色区分) 使用 docker-compose stop 会把这三个容器都停掉。 如果只想处理单个, 还是得用 docker 命令指定容器

Compose 模板文件

mysql:

  • docker.compose.yml
  • .env:

redis

  • docker.compose.yml
  • .env:

zookeeper

  • docker.compose.yml
  • .env:
  • 上边是基本的 zookeeper 单机, 我这还有个以前用过的伪集群模板,也给放上来

RabbitMQ

  • docker-compose.yml
  • .env

MongoDB

  • docker-compose.yml
  • .env

Tomcat

docker-compose.yml

.env

           


2 COMMENTS

  1. zhangxin2020-06-29 10:55

    大佬太棒了,看了的博客感觉自己还有好多的东西需要学习,感谢分享,顺便问下大佬我现在php也做了4年了,现在感觉有点迷茫了,不知道怎么办,感觉自己还是会点东西,但是看了你的 感觉自己又啥都不会样,是不是分布式的都必须要学习啊,我现在感觉除了分布式的微服务其它的感觉都还可以样,但是感觉又差一点,求大佬指教

    • skypyb2020-06-29 22:44

      PHP我不太明白。不过4年了 分布式的该会的东西起码还是都得知道的。起码锁、事务、ID、Session、定时任务、限流的分布式解决方案基本都得知道吧= = java得会这么多纯粹是因为卷的厉害, 国内开发者想找到好工作 java 的面试难度是地狱级的。

EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00