这里我们安装一下kafka的单机版,由于kafka是基于zk进行管理的,如果我们没有安装过zk的话,需要进行安装好zk再安装kafka,当然如果已经安装过了, 那就没必要安装了。我们可以执行docker images命令查看我们的zk镜像是否已经存在了。执行的主要的流程如下所示:
1. docker拉取zookeeper镜像
2. docker拉取kafka镜像
3. 验证是否拉取镜像成功
4. 启动zookeeper容器
5. 启动kafka容器
6. 验证是否启动成功
7. 设置开机自启动docker容器(zookeeper、kafka)
8. 验证是否设置开机自启动成功
[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
[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
如下所示,执行docker images命令之后,发现存在zk、kafka的镜像,说明我们的镜像拉取成功了!
[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
docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper
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
执行我们的docker ps命令查看一下我们正在运行的docker容器都有哪些,这里我们可以看到成功创建和运行了kafka和zookeeper两个docker容器,这里我们需要注意的容器和镜像的关系是,一个镜像可以同时创建多个容器。
[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
docker update zookeeper --restart=always
docker update kafka --restart=always
reboot
# 重新连接之后执行
docker ps
重启之后执行docker ps命令,如下所示,说明了我们设置的开机自启动设置成功了!