【问题标题】:Connect to ubuntu port from docker container从 docker 容器连接到 ubuntu 端口
【发布时间】:2019-10-10 10:05:16
【问题描述】:

我有一个应用程序在我的本地机器上的 8180 端口上运行 当我尝试从 docker 容器wget http://192.168.1.12:8180/auth 时, 我收到以下错误

--2019-10-10 08:17:03--  http://192.168.1.12:8180/auth
Connecting to 192.168.1.12:8180... failed: Connection refused.

我试过了

❯ sudo ufw status                                                                                                                                        [14:17:44]
Status: active

To                         Action      From
--                         ------      ----
8180/tcp                   ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
8180/tcp (v6)              ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             

仍然遇到同样的错误。

如何解决这个问题??

【问题讨论】:

  • 为什么要打印本地 Docker 网关 IP? https://172.17.0.1:8180/auth?还有为什么有https错误?
  • 我尝试了本地 ip、docker ip 和 http 和 https
  • 端口无效,错误Connecting to 192.168.1.12:8180应该是8080
  • 那只是错字

标签: docker ubuntu networking


【解决方案1】:

您需要在 Docker 中使用网桥。如果 192.168.1.12 确实是您主机的 IP,则此命令将创建一个网络 'dockernet'

$ docker network create -d bridge --subnet 192.168.1.0/24 --gateway 192.168.1.12 dockernet

运行容器时使用这个网络:

$ docker run --net=dockernet [...]

另一种方法是使用容器的“主机”网络驱动程序,如果您发现缺少网络隔离是可以接受的。请参阅Host networking 及其tutorial 了解更多信息。

一般来说,Docker's network documentation 是推荐且易于阅读的。

【讨论】:

    猜你喜欢
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 2019-09-06
    • 1970-01-01
    相关资源
    最近更新 更多