如何配置docker compose以便将磁盘装入文件夹,而不是装入本地磁盘

如何配置docker compose以便将磁盘装入文件夹,而不是装入本地磁盘,docker,apache-kafka,docker-compose,Docker,Apache Kafka,Docker Compose,我们在Docker上使用单节点基本部署,包括以下服务 kafka schemaregistry zookeeper 例如: # docker-compose ps Name Command State Ports ----------------------------------------------------------------------

我们在Docker上使用单节点基本部署,包括以下服务

kafka
schemaregistry
zookeeper
例如:

# docker-compose ps
               Name                           Command            State                     Ports
-------------------------------------------------------------------------------------------------------------------
control-center                       /etc/confluent/docker/run   Up      0.0.0.0:9021->9021/tcp
kafka-single-node_kafka_1            /etc/confluent/docker/run   Up      0.0.0.0:9092->9092/tcp
kafka-single-node_schemaregistry_1   /etc/confluent/docker/run   Up      0.0.0.0:8081->8081/tcp
kafka-single-node_zookeeper_1        /etc/confluent/docker/run   Up      0.0.0.0:2181->2181/tcp, 2888/tcp, 3888/tcp
我们根据以下内容在集装箱上创建服务:

我们在kafka机器上创建主题,并打算将数据注入主题分区

主题将在路径-
/var/lib/kafka/data

因为kafka docker机器上的
/var
只有100G,我们希望使用的尺寸至少为1T

因此,我们计划向操作系统添加一个1T字节(1000G)的新磁盘

一旦我们添加了巨大的磁盘,第二个操作是将磁盘装载到
/var/lib/kafka/data
(因此数据文件夹的大小将为1T)

但问题是-应该设置哪个docker配置文件和参数

我们使用的是docker compose.yml,其中包括卡夫卡的以下部分

kafka:
    image: confluentinc/cp-kafka:latest
    depends_on:
      - zookeeper
    ports:
      - 9092:9092
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

首先,将磁盘装入linux主机上
/etc/fstab
中的目录,然后使用卷-


是否已装入任何卷?看起来docker compose尚未显示任何卷。如果是这样,容器中的数据就会丢失,如果容器不见了。我现在知道,这些数据不重要吗?如果你把它弄丢了,还可以吗?这是卡夫卡的机器!!,数据非常重要。我不得不说,这个设置听起来不太安全。单节点,无数据冗余,使用docker compose运行应用程序,还没有卷。如果发生任何崩溃,数据可能会被破坏,那么就无法保证能够拯救数据。我建议您设置一个更好的环境,一个集群,有足够空间的卷,并复制数据。亲爱的cricket非常感谢您,但有一个重要的问题,如果kafka docker容器发生故障,该怎么办,装载的文件夹中会有什么?作为/某些/路径?(+1)我想问的另一个问题是,假设我想将kafka配置文件作为-server.properties从kafka容器导出到外部,例如/var/kafka/server.properties(操作系统本身)。那么你的建议是什么?你可以添加多个卷。不过,对于汇合容器,外部配置将被环境变量覆盖。如果容器在同一主机上重新启动,则需要装载相同的卷。关于合流容器的-env vars,请您给我举个例子-一步一步(因为我是docker world的新手),您还可以回答以下问题-
kafka:
    image: confluentinc/cp-kafka:latest
    volumes: 
        - /some/path:/var/lib/kafka/data