docker swarm compose kafka服务禁用ssh
时间: 2024-03-16 09:44:25 浏览: 135
您可以通过在docker-compose.yml文件中设置`ports`选项来禁用Kafka服务的SSH访问。在Kafka服务的配置中,删除SSH端口的映射即可禁用SSH访问。例如,以下是一个简单的docker-compose.yml文件,其中禁用了Kafka服务的SSH访问:
```
version: '3'
services:
zookeeper:
image: 'bitnami/zookeeper:latest'
ports:
- '2181:2181'
volumes:
- 'zookeeper_data:/bitnami'
kafka:
image: 'bitnami/kafka:latest'
ports:
- '9092:9092'
environment:
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
volumes:
- 'kafka_data:/bitnami'
volumes:
zookeeper_data:
driver: local
kafka_data:
driver: local
```
在上面的例子中,我们只映射了Kafka服务的9092端口,而没有映射SSH端口。这样,Kafka服务将无法通过SSH进行访问。
相关问题
docker swarm compose 搭建并运行kafka服务
以下是使用Docker Swarm和Docker Compose搭建并运行Kafka服务的简单步骤:
1. 首先,您需要创建一个docker-compose.yml文件,其中包含Kafka服务的配置。以下是一个简单的docker-compose.yml文件,用于启动单个Kafka节点:
```
version: '3.8'
services:
zookeeper:
image: confluentinc/cp-zookeeper:6.2.0
hostname: zookeeper
container_name: zookeeper
ports:
- "2181:2181"
kafka:
image: confluentinc/cp-kafka:6.2.0
hostname: kafka
container_name: kafka
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
```
在上面的配置中,我们使用了Confluent公司提供的Kafka和Zookeeper镜像,并将它们分别命名为zookeeper和kafka。我们还指定了Zookeeper的端口号为2181,Kafka的端口号为9092。
2. 接下来,您需要在Swarm管理节点上初始化Swarm。如果您还没有初始化Swarm,请使用以下命令:
```
docker swarm init
```
3. 然后,您需要将docker-compose.yml文件复制到Swarm管理节点上,并使用以下命令启动Kafka服务:
```
docker stack deploy -c docker-compose.yml kafka
```
这将在您的Swarm集群中启动Kafka服务。
4. 要检查Kafka服务是否正在运行,请使用以下命令:
```
docker service ls
```
这将显示正在运行的Kafka服务。
5. 最后,您可以使用Kafka的客户端工具来测试Kafka服务是否正在工作。例如,您可以使用以下命令向Kafka发送一条消息:
```
docker run --net=kafka_kafka-net --rm confluentinc/cp-kafka:6.2.0 kafka-console-producer --broker-list kafka:9092 --topic test
```
然后,您可以使用以下命令从Kafka中读取消息:
```
docker run --net=kafka_kafka-net --rm confluentinc/cp-kafka:6.2.0 kafka-console-consumer --bootstrap-server kafka:9092 --topic test --from-beginning
```
如果您看到了您发送的消息,则表示Kafka服务已经在Swarm集群中成功启动。
kafka docker 两台机器部署主从
### 部署 Kafka 主从架构
为了在两台机器上使用 Docker 部署 Kafka 的主从架构,可以遵循以下方法来配置 Zookeeper 和 Kafka 实例。
#### 准备工作环境
确保每台机器都已安装并启动了 Docker 服务。对于 Swarm 模式下的 Docker 守护进程,可能需要特定的端口设置[^3]:
```bash
sudo vi /etc/systemd/system/multi-user.target.wants/docker.service
```
找到 `ExecStart` 行,并修改为如下形式以允许远程连接:
```ini
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
```
保存文件后重启 Docker 服务使更改生效。
#### 创建 Docker Compose 文件
创建两个不同的目录分别代表主节点和从节点上的配置。每个目录下都需要有一个名为 `docker-compose.yml` 的文件用于定义容器和服务。
##### Master Node (`/path/to/master/docker-compose.yml`)
```yaml
version: '2'
services:
zookeeper-master:
image: wurstmeister/zookeeper
ports:
- "2181"
kafka-master:
image: wurstmeister/kafka
depends_on:
- zookeeper-master
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://<master-ip>:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper- "9092:9092"
```
##### Slave Node (`/path/to/slave/docker-compose.yml`)
```yaml
version: '2'
services:
zookeeper-slave:
image: wurstmeister/zookeeper
ports:
- "2181"
kafka-slave:
image: wurstmeister/kafka
depends_on:
- zookeeper-slave
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://<slave-ip>:9092
KAFKA_ZOOKEEPER_CONNECT: <master-ip>:2181,<slave-ip>:2181
ports:
- "9092:9092"
```
请注意替换 `<master-ip>` 和 `<slave-ip>` 为实际 IP 地址。
#### 启动集群
在每一台服务器上执行相应的命令来启动各自的服务:
```bash
cd /path/to/master/
docker-compose up -d
cd /path/to/slave/
docker-compose up -d
```
这样就完成了基于 Docker 的双机 Kafka 主从架构部署。
阅读全文