1) #docker swarm init --advertise-addr 10.0.0.211 (10.0.0.211修改为自己本机IP)
2) 创建一个网络
# docker network create --driver overlay --attachable db_net
1)创建目录/home/portainer
2.) 安装命令如下:
#docker service create \
--name portainer \
--publish 9000:9000 \
--replicas=1 \
--constraint 'node.role == manager' \
--mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
--mount type=bind,src=/home/portainer,dst=/data \
portainer/portainer \
-H unix:///var/run/docker.sock
(其中红色字体src后面是刚才你创建的目录)
3)验证安装是否成功。
3.1)查看容器是否为UP状态。
3.2)web访问http://10.0.0.211:9000,提示创建一个管理账户,账户创建成功,就进入主界面。
1)创建3个目录文件,存放zookeeper的数据。
mkdir -p /home/zoo1/data
mkdir -p /home/zoo2/data
mkdir -p /home/zoo3/data
2)拉去镜像:
docker pull docker.io/zookeeper
3)配置文件
version: '3'
services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
ports:
- "2181:2181"
volumes:
- /home/zoo1/data:/data
networks:
- db_net
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo2:
image: zookeeper
restart: always
hostname: zoo2
ports:
- "2182:2181"
volumes:
- /home/zoo2/data:/data
networks:
- db_net
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888
zoo3:
image: zookeeper
restart: always
hostname: zoo3
volumes:
- /home/zoo3/data:/data
ports:
- "2183:2181"
networks:
- db_net
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=0.0.0.0:2888:3888
networks:
db_net:
external: true
4)部署设置
5)查看是否部署成功。
如果部署成功,容器显示为running状态。
6)进入容器的控制台,zookeeper安装在目录/zookeeper-3.4.14。
1)拉取镜像
docker pull docker.io/wurstmeister/kafka
2)配置文件
注意:
1. 172.18.0.1是宿主机IP,是宿主机的网桥IP(docker-gwbridge),能ping通各个docker容器。
2. 端口,9091:9092 ,前面9091是宿主机端口,后面9092是docker容器中端口。
version: '3'
services:
kafka1:
image: wurstmeister/kafka
restart: always
hostname: kafka1
ports:
- "9091:9092"
networks:
- db_net
environment:
- KAFKA_BROKER_ID=1
- KAFKA_ZOOKEEPER_CONNECT=zoo1:2181,zoo2:2182,zoo3:2183
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.18.0.1:9091
- KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
kafka2:
image: wurstmeister/kafka
restart: always
hostname: kafka2
ports:
- "9092:9092"
networks:
- db_net
environment:
- KAFKA_BROKER_ID=2
- KAFKA_ZOOKEEPER_CONNECT=zoo1:2181,zoo2:2182,zoo3:2183
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.18.0.1:9092
- KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
kafka3:
image: wurstmeister/kafka
restart: always
hostname: kafka3
ports:
- "9093:9092"
networks:
- db_net
environment:
- KAFKA_BROKER_ID=3
- KAFKA_ZOOKEEPER_CONNECT=zoo1:2181,zoo2:2182,zoo3:2183
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.18.0.1:9093
- KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
networks:
db_net:
external: true
3)配置设置(参考上面的zookeeper),然后部署。
4) 进入容器控制台,kafka 安装路径 /opt/kafka_2.12-2.2.0。
创建topic和查询topic。
创建:./bin/kafka-topics.sh --create --zookeeper zoo2:2181 --replication-factor 1 --partitions 1 --topic testtopic2
查询: ./bin/kafka-topics.sh --list --zookeeper zoo1:2181