为 VPN 容器连接的 docker 个容器打开端口

Open port for docker container connected by VPN container

我想要 运行 一个 docker 容器 (kmb32123/youtube-dl-server) through a VPN in order to access geo blocked content. I found a suitable VPN docker image (ilteoood/docker-surfshark)。我正在尝试将这两个图像合并到一个 docker-compose.yml 文件中。但是,由于选项冲突,我无法发布 youtube-dl-server 的端口。

conflicting options: port publishing and the container type network mode

有没有其他方法可以让 youtube-dl-server 通过 docker-surfshark 容器路由流量,同时仍然在本地公开端口 8080 以便我可以访问它?

version: "2"

services: 
  surfshark-uk:
    image: ilteoood/docker-surfshark
    container_name: surfshark
    environment: 
        - SURFSHARK_USER=foo
        - SURFSHARK_PASSWORD=bar
        - SURFSHARK_COUNTRY=uk
        - CONNECTION_TYPE=udp
    cap_add: 
        - NET_ADMIN
    devices:
        - /dev/net/tun
    restart: unless-stopped
  youtube-dl-uk:
    image: "kmb32123/youtube-dl-server"
    container_name: yt-download-uk
    network_mode: container:surfshark-uk
    depends_on:
      - surfshark-uk
    ports:
      - 8080:8080
    volumes:
      - /Users/greg/Desktop/ukvids:/youtube-dl
    restart: unless-stopped
greg@computer docker $ docker-compose up
WARNING: Found orphan containers (surfshark, 949001ea6405_yt-download-uk) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Creating surfshark-uk ... done
Creating yt-download-uk ... error

ERROR: for yt-download-uk  Cannot create container for service youtube-dl-uk: conflicting options: port publishing and the container type network mode

ERROR: for youtube-dl-uk  Cannot create container for service youtube-dl-uk: conflicting options: port publishing and the container type network mode
ERROR: Encountered errors while bringing up the project.

我认为 surfshark-uk 容器中的发布端口将完成与 youtube-dl-uk 相同的工作,因为它使用 surfshark-uk 的网络。因此当您尝试点击

时,该端口将可以在您的主机上访问
curl localhost:8080
yt-download-uk   | 172.26.0.1 - - [28/Jun/2020 02:03:17] "GET / HTTP/1.1" 404 720

所以更新 docker-compose 文件,它应该可以工作。

  surfshark-uk:
    image: ilteoood/docker-surfshark
    container_name: surfshark
    ports:
      - 8080:8080

The port forwarding takes place with the VPN container, not the one that reuses its IP stack.

port publishing and the container type network mode