docker快速搭建几个常用的第三方服务

本次和大家分享的内容是使用docker快速搭建工作中常用的第三方的服务,对于有一些互联网背景的公司来说,以下几个服务都是很需要的:redis,rabbit,elasticsearch;

本篇涉及docker常用几个命令:

docker pull 镜像名:版本:拉去镜像
docker rmi 镜像名或id:删除镜像
docker images:获取本地已有镜像
docker run 镜像名或id:使用默认端口启动镜像
docker run -p port:port1 -d 镜像名或id:指定port端口映射到port1,并后台启动镜像
docker ps:查看正在运行的docker容器
docker ps -a:查看所有执行过run命令的容器服务(包括已经停止的容器)
docker stop 容器id:停止某个容器
docker restart 容器id:重启某个容器
docker rm 容器Id:删除某个容器

搭建redis

要通过docker搭建某个服务,首先需要从镜像库拉去对应的镜像,目前国内也有一些好的镜像资源,比如阿里,网易等具体镜像地址网搜吧;

docker pull redis

执行完如上命令后,会得到如下成功拉取的结果:

docker快速搭建几个常用的第三方服务
docker images

命令能够看到已经包含在我们本地镜像里了

docker快速搭建几个常用的第三方服务

然后来启动redis容器,并通过docker ps查看启动

docker run -p 6378:6379 --name redis -d f06a5773f01e
docker快速搭建几个常用的第三方服务

能够看出redis容器已经启动了,访问本机端口6378即可映射到容器的6379,下面通过redismanager客户端连接下redis服务

docker快速搭建几个常用的第三方服务

搭建rabbit

同样的拉去rabbit镜像,一般rabbit需要一个可视化后台,很多镜像里面都已经包含了manager管理后台,我这里的镜像包含

docker pull rabbitmq
docker run -p 5672:5672 -p 15672:15672 --name rabbit -d rabbitmq

这里有两个-p分别指定了两个端口的映射,如果有更多端口就依次叠加映射就行,执行成功显示

docker快速搭建几个常用的第三方服务

这个时候可以直接在浏览器浏览(账号和密码按照默认)

http://127.0.0.1:15672

账号:guest

密码:guest

docker快速搭建几个常用的第三方服务

你可以自己写个程序往docker所在的宿主ip的5672端口发送消息,控制台15672能够查看得到

搭建elasticsearch

同样如上执行pull和run命令来运行镜像

docker pull elasticsearch
docker run -p 9200:9200 -p 9300:9300 --name es -d elasticsearch

运行成功后,可以直接在浏览器访问http://127.0.0.1:9200/ ,得到如下成功界面

docker快速搭建几个常用的第三方服务

叙述

docker还有很多其他第三方镜像,这里就不再说明了,使用docker常用命令大致如上讲解的;docker在互联网公司很常见,但是一般环境搭建的权限都在运维手上,不过这不妨碍在测试环境自己组建和个人研究;由于它能快速的部署而受到很多人喜爱,现在本人做的程序一般都会去生成一个镜像方便部署,感觉起来很不错,希望大家可以多多交流。

 

Docker、Zookeeper、Kafka常用参数详解

1、拉取Zookeeper镜像

docker pull wurstmeister/zookeeper

注解:pull,从docker仓库拉取一个镜像。

后面的参数格式:镜像名称:版本。:版本,为可选参数。不写的话,就是拉取默认版本latest。

2、拉取Kafka镜像

docker pull wurstmeister/kafka

查看已下载的镜像

docker images -a

注解:images,镜像列表。

-a 或 –all,为可选参数。显示所有镜像,不加该参数,默认是隐藏过程镜像的。

部署单点Zookeeper和单点Kafka,为后面的集群搭建做基础

1、创建Zookeeper单点容器

Docker、Zookeeper、Kafka常用参数详解

创建Zookeeper容器

注解:run,创建新容器,并为容器配置一些参数。

  • -t,在容器内部创建一个tty或者伪终端。
  • -i,允许主机终端按照容器内部的标准与其交互。
  • -d,后台运行容器并打印容器名称。
  • –name,容器名称。
  • -p,端口映射,参数格式为:主机物理端口:容器内部端口。
  • 最后跟上的就是我们已经下载的镜像。

2、创建Kafka单点容器

Docker、Zookeeper、Kafka常用参数详解

创建Kafka容器

注解:

  • -e,配置容器环境变量。
  • –link,链接到另一个容器,参数格式为:目标容器名称:在本容器内的别名。

这里的环境变量设置,其实就是对即将创建的Kafka配置server.properties文件的初始化。

查看容器

docker ps -a

注解:ps,容器列表。

  • -a 或 –all,为可选参数。显示所有容器,不加该参数,默认仅显示运行中的容器。

3、测试

进入Kafka容器

Docker、Zookeeper、Kafka常用参数详解

进入Kafka容器

注释:exec,在运行中的容器中,执行命令。

  • 跟上容器名称,也就是创建容器时 –name 参数定义的名称。
  • 如果没有定义,也可以用ID。
  • 再跟上要执行的命令。

消息生产和消息消费测试

Docker、Zookeeper、Kafka常用参数详解

测试成功

部署Zookeeper集群和Kafka集群

注意:这里没有使用 docker-compose,全部是手动搭建的方式。这样可以帮助我们熟悉使用docker,并了解Zookeeper和Kafka集群配置。

我们准备搭建3个Zookeeper节点和3个Kafka节点,集群不再适合使用link的方式进行容器间的通信。我们使用自定义网络,然后把容器加入自定义网络中。

1、创建自定义网络

查看网络

docker network ls

注释:network,管理网络。

  • ls,网络列表

创建网络

Docker、Zookeeper、Kafka常用参数详解

创建自定义网络

再次查看网络

Docker、Zookeeper、Kafka常用参数详解

网络创建成功

2、创建Zookeeper集群

1、创建Zookeeper节点1

Docker、Zookeeper、Kafka常用参数详解

创建Zookeeper节点1

注释:

-v,将宿守主机文件挂载到容器内部,参数格式:主机文件或目录:容器内文件或目录。当然了,既然是把主机文件挂载到容器内部,首先要先创建好主机的这些文件或目录,比如最重要的 zoo.cfg 文件,还有myid文件。myid服务器节点编号。

zoo.cfg中的集群核心配置如下:

#server.服务器节点编号=主机名:心跳端口:选举端口)

server.1=zookeeper1:2888:3888

server.2=zookeeper2:2888:3888

server.3=zookeeper3:2888:3888

三个节点上述配置一致。只是myid文件内容记录分别是1,2,3。

2、创建Zookeeper节点2

Docker、Zookeeper、Kafka常用参数详解

创建Zookeeper节点2

3、创建Zookeeper节点3

Docker、Zookeeper、Kafka常用参数详解

创建Zookeeper节点3

4、分别进入Zookeeper节点,查看zkServer运行状态

Docker、Zookeeper、Kafka常用参数详解

跟随者

Docker、Zookeeper、Kafka常用参数详解

跟随者

Docker、Zookeeper、Kafka常用参数详解

领导者

领导者已经选举成功,Zookeeper集群完成

3、创建Kafka集群

​参数配置的含义,都已经有过解释了,直接看三个节点配置吧

Docker、Zookeeper、Kafka常用参数详解

Kafka节点1

Docker、Zookeeper、Kafka常用参数详解

Kafka节点2

Docker、Zookeeper、Kafka常用参数详解

Kafka节点3

4、测试

这次测试,小编使用宿守主机上的kafka进行测试。链接Kafka容器,用的是主机与容器的端口映射。

Docker、Zookeeper、Kafka常用参数详解

测试成功

Leave a Comment