【问题标题】:Disable IPv6 in Docker container from Java从 Java 禁用 Docker 容器中的 IPv6
【发布时间】:2019-01-10 00:38:03
【问题描述】:

从 Java 代码启动 Docker 容器时,我需要禁用 IPv6。使用命令行,如下:

docker run --sysctl net.ipv6.conf.all.disable_ipv6=1 ...

  • 除了使用 Java 和 Spotify 的 docker-client 之外,是否可以这样做?

  • 作为替代解决方案...可以使用docker-java吗?

【问题讨论】:

  • @juanlumn 我的问题与使用 Java 中的 Docker 有关。
  • @MichaelHampton 我的目标应用程序不是 Java,实际上它是 Docker 容器中的浏览器。我想使用 Java 库(docker-client 或 docker-java)更改该容器的设置,但似乎不可能。至少我没有找到方法,因此我在问。
  • 这些客户端似乎都不支持在容器上设置 sysctls。考虑提交一个问题,或者更好的是一个拉取请求。

标签: java docker ipv6 docker-java spotify-docker-client


【解决方案1】:

请按照这个-

https://github.com/spotify/docker-client/blob/2966b5cad6568d3c1b23f8891fbecab110834785/src/test/java/com/spotify/docker/client/DefaultDockerClientTest.java

 final NetworkConfig networkConfig =
        NetworkConfig.builder().name(networkName).driver("bridge").checkDuplicate(true).ipam(ipam)
            .internal(false).enableIPv6(false).labels(labels)
            .build();

【讨论】:

    【解决方案2】:

    我认为您应该可以使用我们的 docker-java-api 来做到这一点(有关详细信息,请参阅 Wiki 和链接的博客文章):https://www.github.com/amihaiemil/docker-java-api

    原则上应该这么简单:

    final Docker docker = new LocalDocker(...); //or new RemoteDocker(...);
    final Container container = docker.containers().create(/*javax.json.JsonObject config*/);
    

    当然,您必须研究 Docker API 文档才能了解 JsonObject 应该具有什么格式(它也应该接受有关 IpV 6 的配置)。

    【讨论】:

      猜你喜欢
      • 2015-08-25
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多