设置docker容器(kafka,zookeeper)并试图从另一个容器(发布和)消费时,会收到以下错误:KafkaError{code=leader_not_available,val=5,str=“broker:Leader not available”}在发布或消费时没有额外的错误指示。在测试与telnet 172.18.0.39092
的连接性时,我收到了预期的结果。
In [2]: c.list_topics()
Out[2]: ClusterMetadata(9ToJF8nPQC-rCTXGxuUalw)
In [3]: l = c.list_topics()
In [4]: l.brokers
Out[4]: {1010: BrokerMetadata(1010, 172.18.0.3:9092)}
In [7]: l.orig_broker_name
Out[7]: u'172.18.0.3:9092/1010'
In [8]: l.topics
Out[8]:
{'__consumer_offsets': TopicMetadata(__consumer_offsets, 50 partitions),
'item': TopicMetadata(item, 1 partitions),
'mytopic': TopicMetadata(mytopic, 1 partitions)}
In [9]: i =l.topics['item']
In [10]: i.partitions
Out[10]: {0: PartitionMetadata(-1, KafkaError{code=LEADER_NOT_AVAILABLE,val=5,str="Broker: Leader not available"})}
docker-compose.yml:
version: '2'
services:
zookeeper:
restart: always
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
restart: always
depends_on:
- zookeeper
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: "172.18.0.3"
KAFKA_ADVERTISED_PORT: "9092"
KAFKA_CREATE_TOPICS: "item:1:1"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Ubuntu@stage:~/docker/kafka#sudo docker network inspect kafka_default
[
{
"Name": "kafka_default",
"Id": "fc8afcde4318599b66f540ebd6221cffe57382a70b43ed1d58eda7fe059e7a18",
"Created": "2018-07-25T13:29:56.034567548Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Containers": {
"7776db25d1ca9a3ec98775ff0dabe356409dda9f782a771c9b1f7ae4e04f3453": {
"Name": "test",
"EndpointID": "204158f6f167b12c06b2dcdda856992c5ea75adc80b06ac00f9abebb4f0179ba",
"MacAddress": "02:42:ac:12:00:04",
"IPv4Address": "172.18.0.4/16",
"IPv6Address": ""
},
"b4869e44cf136a129701413c5a5dd371d15d6158bfaf577d30aeb6ad66b63263": {
"Name": "kafka_zookeeper_1", DEPTH_PRIORITY = 1
"EndpointID": "229b2587d92c8593d933d2583e09e669aa6f9a9c04e5b94ebf5a25be57aad27f",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
},
"f682fd27ef52a40abf501348b5b16e59b48440041d1e4827ddb15a0ef8dbdd14": {
"Name": "kafka_kafka_1",
"EndpointID": "b17874d64c699635c471a1bcb515cb1441d22b2896e98a113115a4239caed460",
"MacAddress": "02:42:ac:12:00:03",
"IPv4Address": "172.18.0.3/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
} ]
始终尝试在kafka_adversed_host_name中使用公共ip,并且可以使用KAFKA_HOST_NAME指定实例的主机名。
另外,如果您使用的是最近的kafka版本,请使用listeners和adveredsed.listeners而不是host.name和adveredsed.host.name。
1、启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 1.1 新建并启动 所需要的命令主要为 docker run。 例如,下面的命令输出一个 “Hello World”,之后终止容器。 $ sudo docker run ubuntu:14.0
我有一个容器,我想停止,但当我做一个它挂起,永远不会停止它。 我试过正常的和
我正在docker容器中设置一个应用程序。我希望这个应用程序能够与localstack堆栈容器localstack文档连接。当我运行时,容器会成功启动。我可以运行docker-compose文件中未包含的独立java应用程序,它将成功连接到localstack容器。但与localstack一起启动的应用程序无法连接。我看过docker文档和localstack文档,我想不出如何让这些东西彼此通信。
我的数据库连接是用下面的类处理的: 这是我的spring boot控制器 下面是我的dockerfile: 我读了这里和这里提到的解决方案。也阅读了一些教程,但我无法将这些解决方案中的任何一个适合我的代码。在我的代码中,我应该在哪里更改?
我试图用PHP、MariaDB和一个教程创建一个PHP开发环境,该教程建议使用Adminer进行数据库管理。因此,我生成了我的文件如下: 但是,当我为MariaDB设置卷时,在管理员登录页面中出现了一个错误。当我没有设置它们时,它似乎工作得很好。
主要内容:网络端口映射,Docker 容器互联,配置 DNS前面我们实现了通过网络端口来访问运行在 docker 容器内的服务。 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。 下面我们来实现通过端口连接到一个 docker 容器。 网络端口映射 我们创建了一个 python 应用的容器。 另外,我们可以指定容器绑定的网络地址,比如绑定 127.0.0.1。 我们使用 -P 绑定端口号,使用 dock