docker快速搭建kafka和elk环境

目标 建立如下图所示开发镜像

docker-book.png
~ docker -v
Docker version 17.12.0-ce, build c97c6d6

创建一个6G内存的虚拟机,并用阿里镜像代理

docker-machine create --driver virtualbox --virtualbox-memory 6000 --engine-registry-mirror=https://2h3po24q.mirror.aliyuncs.com default 

创建完后启动docker-machine

docker-machine start default
docker-machine env
eval $(docker-machine env)

创建kafka镜像

docker run -p 2181:2181 -p 9092:9092 --env ADVERTISED_HOST=`docker-machine ip \`docker-machine active\`` --env ADVERTISED_PORT=9092 spotify/kafka

创建elk镜像

docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk:561

创建portainer镜像,免登陆

docker run -d -p 9000:9000 --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer:/data portainer/portainer --no-auth    

常见问题

  • 1 docker start <container_name> returns "container <hash> already exists"

这里有个此议题 issues 36145 我的解决方法是:关机前 docker-compose stop default 下次再启动就不会有这个问题了,当然这样做比较麻烦,如果忘记stop 直接关机下次启动就都 exists了。

  • 2 elk启动失败问题

在 Kitematic 中start elk镜像在控制台中见如下输出

* Starting Elasticsearch Server       G  G[ OK ]
...
waiting for Elasticsearch to be up (30/30)
...
[1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决 :进入到虚拟机中调大max_map_count elk docker-cli-run-prod-mode

docker-machine ssh
sudo sysctl -w vm.max_map_count=262144

常用命令

docker-machine ssh      登录到里面
docker-machine ip       查看docker-machine地址

sudo systemctl status docker
sudo systemctl enable docker
docker images
docker image rm         删除镜像
docker run centos
docker run sebp/elk:561
docker stop             先停止
docker rm               然后删除
docker restart          重启

-d                      后台启动
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容