docker安装运行kafka单机版

这里我们安装一下kafka的单机版,由于kafka是基于zk进行管理的,如果我们没有安装过zk的话,需要进行安装好zk再安装kafka,当然如果已经安装过了, 那就没必要安装了。我们可以执行docker images命令查看我们的zk镜像是否已经存在了。执行的主要的流程如下所示:

bash 复制代码
1. docker拉取zookeeper镜像
2. docker拉取kafka镜像
3. 验证是否拉取镜像成功
4. 启动zookeeper容器
5. 启动kafka容器
6. 验证是否启动成功
7. 设置开机自启动docker容器(zookeeper、kafka)
8. 验证是否设置开机自启动成功

step 01、docker拉取zookeeper镜像

bash 复制代码
[root@localhost ~]# docker pull wurstmeister/zookeeper
Using default tag: latest
latest: Pulling from library/zookeeper
bd897bb914af: Pull complete 
0cc7fec72146: Pull complete 
14c358bab58a: Pull complete 
c12f81e19ff2: Pull complete 
af866c63058d: Pull complete 
566357e888b9: Pull complete 
c27620a3c4ab: Pull complete 
e7fc9d786407: Pull complete 
Digest: sha256:f0d4fd7ba4c0360907562bdc07b2f10bd9a1713ae993d8c6110ba92c8b57a127
Status: Downloaded newer image for zookeeper:latest
docker.io/library/zookeeper:latest

step 02、docker拉取kafka镜像

bash 复制代码
[root@localhost ~]# docker pull wurstmeister/kafka
Using default tag: latest
latest: Pulling from wurstmeister/kafka
540db60ca938: Pull complete 
f0698009749d: Pull complete 
5a8268dcf647: Pull complete 
ae444239b90c: Pull complete 
c450682c9350: Pull complete 
Digest: sha256:3075767b5e0735535e8c3bae625d7e5e0e6980f74867aae76aeb0a7db538dc7d
Status: Downloaded newer image for wurstmeister/kafka:latest
docker.io/wurstmeister/kafka:latest

step 03、验证是否拉取镜像成功

如下所示,执行docker images命令之后,发现存在zk、kafka的镜像,说明我们的镜像拉取成功了!

bash 复制代码
[root@localhost ~]# docker images
REPOSITORY           TAG       IMAGE ID       CREATED       SIZE
wurstmeister/kafka   latest    11142da99906   4 days ago    505MB
zookeeper            latest    c7ff196e79f0   11 days ago   278MB

step 04、启动zookeeper容器

bash 复制代码
docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper

step 05、启动kafka容器

bash 复制代码
docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka

step 06、验证是否启动成功

执行我们的docker ps命令查看一下我们正在运行的docker容器都有哪些,这里我们可以看到成功创建和运行了kafka和zookeeper两个docker容器,这里我们需要注意的容器和镜像的关系是,一个镜像可以同时创建多个容器。

bash 复制代码
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED              STATUS              PORTS                                                                   NAMES
bdbe3d25f43d   wurstmeister/kafka       "start-kafka.sh"         7 seconds ago        Up 6 seconds        0.0.0.0:9092->9092/tcp, :::9092->9092/tcp                               kafka
37ef5991289c   wurstmeister/zookeeper   "/bin/sh -c '/usr/sb..."   About a minute ago   Up About a minute   22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp   zookeeper

step 07、设置docker容器开机自启动

bash 复制代码
docker update zookeeper --restart=always
docker update kafka --restart=always

step 08、验证开机自启动是否设置成功

bash 复制代码
reboot
# 重新连接之后执行
docker ps

重启之后执行docker ps命令,如下所示,说明了我们设置的开机自启动设置成功了!