原标题:Go语言:Docker安装及运行consul节点

搭建集群

在真实的生产环境中,需要真实的部署consul集群。在一台机器上想要模拟多台集群部署的效果,有两种方案:一种是借助虚拟机,另一种是借助容器技术。

在本系列课程中,使用后者容器技术来实现集群的搭建。

Docker简介

Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。

Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何的接口,更重要的是容器性能开销很低。

Docker安装

1、Windows系统下安装

window系统下的安装可以参考如下的链接文档:https://www.runoob.com/docker/windows-docker-install.html

可以按照如上的链接在window系统下安装Docker。

2、MacOS系统下安装

MacOS系统下的安装,有两种方式。同样可以参考如下链接:https://www.runoob.com/docker/macos-docker-install.html

Docker测试

Docker安装完成以后,可以进行测试。可以通过终端命令的形式查看Docker是否安装成功:

docker version

Docker中安装consul

Docker仅仅是一个容器,是搭建集群的一个环境。如果想要搭建多个集群,还必须安装consul环境。Docker中安装consul环境,可以使用指令实现。Docker安装consul指令如下:

  • docker search

docker search consul

使用如上命令查看consul的镜像文件,在终端输出如下所示内容:

  • docker pull

docker pull consul

通过search查询了consul镜像的相关内容后,可以使用如上的docker pull命令安装consul环境。

检验Docker安装Consul成功

在Docker中安装consul可以,可以通过如下命令查看docker中安装consul是否成功:

docker images

或者

docker run consul version

Docker中启动一个单独节点consul agent

Docker中安装好了consul以后,首先尝试启动一个server节点,可以通过如下命令来启动docker中的单个节点:

$ docker run -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 consul -server -bootstrap

如上的命令中,参数说明如下: * 暴露了三个端口,分别是: * RPC端口:8400 * HTTP端口:8500 * DNS端口:8600

  • -h:对应的node1为节点的名称
  • -server:表示启动的节点类型为server类型
  • -bootstrap:表示自动引导选举,用于server节点选举leader的参数

在暴露的三个端口中,还对应的映射到了主机的端口上,因此,我们可以通过在主机中访问server的信息。比如:

  • curl访问HTTP接口: curl localhost:8500/v1/catalog/nodes

  • dig来和DNS接口进行交互:
  • dig @0.0.0.0 -p 8600 node1.node.consul

另外,我们还可以浏览器来进行访问,在主机的浏览器中键入:http://127.0.0.1:8500 进行访问,可以查看到server节点的相关信息。

  • 宿主机上查看节点数量 在宿主机上已经安装了Consul, 可以用命令行来和容器里的Consul Agent进行交互:

consul members

相关文章