连接到Dokcer容器内Linux主机的特定端口

oyt4ldly  于 2023-03-17  发布在  Linux
关注(0)|答案(1)|浏览(93)

我在Linux Ubuntu 20.04中通过docker-compose运行一些Docker容器。我的docker编写配置如下:版本:“3”

networks:
  app_net:
     external: true

services:
  client-service:
    image: client-image
    container_name: client-service-con
    restart: always
    stdin_open: true
    volumes:
      - ../clients/web/:/home/cl/clients/web
    working_dir: "/home/cl/clients/web"
    expose:
      - 80
    networks:
      - app_net

现在我想连接到linux主机中的一个活动socks5代理,如下所示:

socks5://172.18.0.0:2080

但是我得到"failed: Connection refused"错误。当我的主机是Mac OS时,我这样做,它工作:

socks5://host.docker.internal:2080

但是当我的主机是Linux时,没有运气,我可以连接。我试图从容器ping主机,如下所示:

nc -vz 172.18.0.1 2080

但我得到了同样的错误。当我ping时:

ping 172.18.0.1

我得到这个:

PING 172.18.0.1 (172.18.0.1): 56 data bytes
64 bytes from 172.18.0.1: icmp_seq=0 ttl=64 time=0.108 ms
64 bytes from 172.18.0.1: icmp_seq=1 ttl=64 time=0.149 ms
64 bytes from 172.18.0.1: icmp_seq=2 ttl=64 time=0.130 ms
64 bytes from 172.18.0.1: icmp_seq=3 ttl=64 time=0.101 ms
64 bytes from 172.18.0.1: icmp_seq=4 ttl=64 time=0.327 ms
64 bytes from 172.18.0.1: icmp_seq=5 ttl=64 time=0.097 ms
64 bytes from 172.18.0.1: icmp_seq=6 ttl=64 time=0.100 ms
64 bytes from 172.18.0.1: icmp_seq=7 ttl=64 time=0.126 ms
64 bytes from 172.18.0.1: icmp_seq=8 ttl=64 time=0.154 ms

我需要做什么?我的Docker版本是:23.0.1,内部版本a5ee5b1我的主机Linux计算机是:Ubuntu 20.04

hmmo2u0o

hmmo2u0o1#

您应该在docker-compose.yml中将network_mode设置为“host”,如下所示:
network_mode: "host"
你能使用码头集群吗?如果可以,那么这个可能会有用:

networks:
  app_net:
     external: true
  host:
    external:
      name: host

services:
  client-service:
    image: client-image
    container_name: client-service-con
    restart: always
    stdin_open: true
    volumes:
      - ../clients/web/:/home/cl/clients/web
    working_dir: "/home/cl/clients/web"
    expose:
      - 80
    networks:
      - app_net
      - host

相关问题