Docker 错误:“主机”网络模式与端口绑定不兼容

Err*_*one 1 docker docker-compose

version: '3.6'

services:
  vpn-proxy: # docker exec -it vpn-proxy /bin/sh
    container_name: vpn-proxy
    build:
      context: ../../vpn-proxy
      dockerfile: Dockerfile
    ports:
      - "127.0.0.1:13194:13194"
    logging:
      driver: json-file
    #command: -v UDP4-RECVFROM:13194,fork UDP4-SENDTO:172.17.0.1:1194
    command: TCP-LISTEN:13194,fork TCP:172.17.0.1:1194
    restart: always
  openvpn: # docker exec -it openvpn /bin/sh
    image: kylemanna/openvpn
    container_name: openvpn
    environment:
      DEBUG: '0'
    ports:
      - "1194:1194/udp"
    volumes:
      - ../../openvpn/scripts:/scripts
      - ../../data/output:/output
    network_mode: host
    cap_add:
      - NET_ADMIN
    command: /scripts/run-vpn.sh
    restart: always
Run Code Online (Sandbox Code Playgroud)

错误:对于 openvpn“主机”网络模式与端口绑定不兼容 docker.errors.InvalidArgument:“主机”网络模式与端口绑定不兼容

当我运行 up.sh 文件时,出现上述错误。

Aym*_*Dev 7

错误消息告诉您无法使用,network_mode: host并且ports在同一个服务中,您需要做出选择。

您的openvpn服务有1194:1194/udp 端口绑定。这用于将主机的端口绑定到容器的端口。但是当您使用主机网络模式时,容器将使用主机的网络接口,这使得您的端口绑定毫无用处,因为容器将可以访问主机的端口。

您可以删除ports服务的部分,但由于通常不建议使用主机网络模式,您应该尝试使用端口绑定。