docker consul 服务发现平台搭建
环境
- Mac && Ubuntu / aliyun服务器
- docker
一台运行Ubuntu的电脑和一台mac,连接到同一无线网络。
想要在Ubuntu上运行通过docker搭建的consul服务发现平台。在Mac上可以通过浏览器访问到此平台。
docker 以及 consul镜像需要自行安装。
参考:Docker-hub-consul
docker 常见命令
docker ps
: 查看正在运行的容器docker image
:查看下载的镜像docker run -d
:-d
后台运行docker run -it
:-it
非后台运行(实时日志输出)docker logs CONTAINER_ID
:查看容器日志docker exec -it CONTAINER_ID sh
: 进入容器内部 docker shell
运行consul镜像
docker run -d -p 8500:8500 --restart=always -e CONSUL_IND_INTERFACE='wlp5s0' consul
-p 8500:8500
: 容器内部的8500端口映射到宿主机上的8500端口-e CONSUL_IND_INTERFACE='wlp5s0‘
网络环境配置。wlp5s0
表示网卡名。Ubuntu上可以通过命令ip a
看到。常见网卡名为eh0
注意:绑定的网卡对应的IP需要和Mac在同一局域网并能够访问到(ping通)
之后,Mac就可以通过http://192.168.2.4:8500/
直接访问到consul的ui界面了。
问题
搭建过程中遇到的问题
- 开始搭建的时候,是按照一个博客的教程来搞的,主要是容器启动的各种参数不知道什么含义。现在想起来 真是浪费时间,直接看官网就好了,上面的example能帮助快速搭建一个可用的实例。
- docker一个容器的使用并没有一个比较完善的说明文档,没办法全面了解这个容器可以进行什么配置,每个配置参数又代表什么含义,整个搭建过程都是虽然简单,但这是尝试了几十个命令之后的结果。
- 如果容器挂掉,如何在之前的状态之上继续进行?(将一些配置文件链接到宿主机上?docker-consul 并没有说明哪个是有用的目录…)
杂
4. 如何通过域名的方式访问到consul平台(本地DNS服务?)
5. 网卡名为什么不一样?我记得以前一直都是eth0的,docker 或者虚拟机的不算