本文默认读者已经对Docker有一定了解,且清楚使用Docker进行部署的优势。
1.安装Docker(Mac)
官网:https://docs.docker.com/docker-for-mac/install/
1.1 下载 Docker for Mac
地址:https://store.docker.com/editions/community/docker-ce-desktop-mac
1.2 下载完成以后,双击打开文件Docker.dmg
image.png
1.3双击Docker.app启动
image.png
Mac顶部状态栏会出现鲸鱼图标
image.png
1.4点击鲸鱼图标可以进行设置
image.png
1.5 Check versions
1.6 Hello Word
1.6.1 打开命令行终端,通过运行简单的Docker映像测试您的安装工作。
1.6.2 启动Dockerized web server
1.6.3 打开浏览器,输入
image.png
常用命令:
2.使用Docker安装Nginx
Docker Store 地址:https://store.docker.com/images/nginx
其实在上文中Hello World即已经安装了nginx。
2.1 拉取 image
2.2 创建Nginx容器
-d 以守护进程运行(运行在后台)
--name nginx 容器名称;
-p 80:80 端口映射
-v 配置挂载路径 宿主机路径:容器内的路径
关于挂载
为了能直接修改配置文件,以实现对Nginx的定制化,需要进行Docker的相关目录挂在宿主机上。
需要挂载的目录/文件:
a. 挂载文件命令: -v 宿主机路径:容器内的路径:ro
b.宿主机需要先创建后文件,无法自动创建,反之将报错
nginx.conf 示例
2.3 浏览器访问
image.png
在调试过程中往往不会很顺利,这里的技巧是通过阅读中的异常日志进行
2.4 配置反向代理
此处是本机启动一个 SpringBoot web server,端口为:8080,浏览器访问:
image.png
按照上节中示例中的配置方式,增加、、相关配置,对80端口进行监听,重启nginx容器。
浏览器访问:,可以看到正常访问。
3.使用Docker安装Openresty
Openresty是在Nginx基础上做了大量的定制扩展,其安装过程和Nginx基本一致。
Docker Store 地址:https://store.docker.com/community/images/openresty/openresty
3.1 拉取 image
3.2 创建Openresty容器
注意事项和安装Nginx基本一致,在此不再赘述。
4.使用Docker安装Kafka
Docker Store 地址:https://store.docker.com/community/images/spotify/kafka
4.1 拉取 image
4.2 创建Kafka容器
运行命令:
2181为zookeeper端口,9092为kafka端口
输出启动日志:
image.png
4.3 Check zookeeper是否启动
可以使用一些可视化客户端连接端口,进行监控,如zooInspector、Idea Zookeeper Plugin等
zooInspector示例
Idea Zookeeper Plugin
5.使用Docker安装Kafka Manager
Kafka Manager 是Yahoo开源的kafka监控和配置的web系统,可以进行kafka的日常监控和配置的动态修改。
Docker Store 地址:https://store.docker.com/community/images/sheepkiller/kafka-manager
5.1 拉取 image
5.2 创建Kafka Manager容器
运行命令:
2181为上节中部署的zookeeper端口,9000为kafka-manager的web端口
输出启动日志:
image.png
5.3 访问Kafka Manager
浏览器访问:
按照页面上的操作按钮进行kafka集群的注册,具体使用方式再次不做详细介绍。
image.png
注册配置后的界面:
image.png
6.Kafka消息生产与消费
6.1创建maven项目
** pom依赖**
6.2 增加log4j2配置
配置log4j2为能正常打印debug日志,方便进行异常排查 (重要)
在目录下增加文件
关于log4j2的使用,有兴趣的可以了解:Log4j1升级Log4j2实战
6.3 创建生产者示例
简单运行后,打印日志如下:
image.png
6.4 创建消费者示例
简单运行后,打印日志如下:
image.png
6.5 注意事项
由于是在本机使用Docker搭建的环境,遇到最多的问题就是网络问题,如host等的配置,但是只要意识到这点,通过注意分析各种异常日志,便不难排查解决。
项目目录结构
7.结语
致此,本文就介绍完了如何使用Docker搭建 Nginx/Openresty - Kafka - kafkaManager。
后续将会继续介绍如何使用Docker搭建一套 nginx+lua+kafka实现的日志收集的教程,敬请期待。
个人介绍:
高广超:多年一线互联网研发与架构设计经验,擅长设计与落地高可用、高性能、可扩展的互联网架构。
本文首发在 高广超的简书博客
END
【推荐书籍】
扫码购买
领取专属 10元无门槛券
私享最新 技术干货