【问题标题】:Azure Iotedge start docker with --net=host so that I can access my IPAzure Iotedge 使用 --net=host 启动 docker,以便我可以访问我的 IP
【发布时间】:2019-11-12 15:41:52
【问题描述】:

我想在我的 Java 代码中找到我的 IP 地址。我的代码在一个 docker 容器中,我总是得到 docker 容器的 IP 地址,而不是我的机器。 我像这样运行 docker

        docker run -p 8080:8080 --privileged --net=host -d 6b45f71550a3

这是我的 Java 代码

        InetAddress addr = InetAddress.getLocalHost();
        String hostname = InetAddress.getByName(addr.getHostName()).toString();

我需要修改 deployment.template.json 以便生成的 docker 使用机器的 IP 地址

    "modules": {
      "MyModule": {
        "version": "1.0",
        "type": "docker",
        "status": "running",
        "restartPolicy": "always",
        "settings": {
          "image": "dev.azurecr.io/dev:0.0.1-arm32v7",
          "createOptions": {
            "ExposedPorts":{"8080/tcp": {}}, 
            "HostConfig": {
              "PortBindings": {
                "8080/tcp": [
                  {
                    "HostPort": "8080"
                  }
                ]
              }
            }
          }
        }
      }
    }

【问题讨论】:

    标签: spring-boot docker azure-iot-edge


    【解决方案1】:

    我想说你不能这样做,但显然你可以通过使用

    "createOptions": {
      "NetworkingConfig": {
        "EndpointsConfig": {
          "host": {}
        }
      },
      "HostConfig": {
        "NetworkMode": "host"
      }
    }
    

    我没试过。我在这里找到它:https://github.com/Azure/iot-edge-v1/issues/517。也许这会有所帮助。

    【讨论】:

    猜你喜欢
    • 2018-09-12
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2022-06-30
    相关资源
    最近更新 更多