Java 卡夫卡集装箱堂';t启动,因为docker警告:使用主机网络模式时将丢弃已发布的端口

Java 卡夫卡集装箱堂';t启动,因为docker警告:使用主机网络模式时将丢弃已发布的端口,java,docker,networking,apache-kafka,containers,Java,Docker,Networking,Apache Kafka,Containers,我对jenkins使用不同的SO映像进行了一些Kafka docker测试,但如果我尝试在本地执行此测试,则会失败,因为警告发布端口在主机网络模式下被丢弃。 在我的java类结构中,我有一个KafkaContainer类,它使用以下方法扩展DockerContainer类: private static String[] getKafkaConfigs(){ return new String[]{"--network=host"}; } 之后,我用Zookeper

我对jenkins使用不同的SO映像进行了一些Kafka docker测试,但如果我尝试在本地执行此测试,则会失败,因为警告发布端口在主机网络模式下被丢弃。 在我的java类结构中,我有一个KafkaContainer类,它使用以下方法扩展DockerContainer类:

private static String[] getKafkaConfigs(){
   return new String[]{"--network=host"};
 }
之后,我用ZookeperContainer运行了Kafka实例,这个ZookeperContainer也运行了,它得到了相同的方法配置:

return new String[]{"--network=host"};

这些端口是Kafka(9092)和zookeper(2181)commons端口。 在我的端口8080中,本地主机服务器正在运行。 任何想法,我如何修复它以在本地主机环境中执行它


谢谢

换成播客解决了这个问题。我读过一些文章,比如 等等。 这是一个很好的替代方案,并且与Docker完全兼容CLI。
顺便说一句,如果有人对docker native有更好的解决方案,请毫不犹豫地发布,谢谢。

改用PODMAN解决了这个问题。我读过一些文章,比如 等等。 这是一个很好的替代方案,并且与Docker完全兼容CLI。
顺便说一句,如果有人对docker native有更好的解决方案,请毫不犹豫地发布,谢谢。

您正在使用这些解决方案吗?或者为什么要在Docker中通过Docker进行主机联网?不,测试是在特定操作系统(基于Linux)的容器中执行的,抱歉,如果我说了任何错误,我对容器和Docker不太了解,但我试着阅读一些有关使用网桥的内容,而不是使用--net=host。你有什么想法吗?测试是在一个容器中执行的构建——确切地说,所以你可以在Docker中使用Docker(也称为DinD),在这里你的8080服务也应该是容器化的,所以你不需要主机联网。但是,由于您使用的是Java,您应该能够很好地使用该库,相关的关于testcontainers web是一个很好的观点,但在这里,我感觉解决方案是关于配置问题,可能与更改此配置以在本地执行有关:--network=host,但我不知道如何执行。我尝试过改为--ip:127.0.0.1,或者在/etc/systemd/system/multi-user.target.wants/docker.service中将其添加到ExecStart中,但它不起作用yetSo,首先,主机联网不会阻止Kafka或Zookeeper启动,所以还有一些其他问题。您使用这些吗?或者为什么要在Docker中通过Docker进行主机联网?不,测试是在特定操作系统(基于Linux)的容器中执行的,抱歉,如果我说了任何错误,我对容器和Docker不太了解,但我试着阅读一些有关使用网桥的内容,而不是使用--net=host。你有什么想法吗?测试是在一个容器中执行的构建——确切地说,所以你可以在Docker中使用Docker(也称为DinD),在这里你的8080服务也应该是容器化的,所以你不需要主机联网。但是,由于您使用的是Java,您应该能够很好地使用该库,相关的关于testcontainers web是一个很好的观点,但在这里,我感觉解决方案是关于配置问题,可能与更改此配置以在本地执行有关:--network=host,但我不知道如何执行。我尝试过改为--ip:127.0.0.1,或者将其添加到/etc/systemd/system/multi-user.target.wants/docker.service中的ExecStart中,但它不起作用。所以,首先,主机联网不会阻止Kafka或Zookeeper启动,所以还有一些其他问题。