Проблемы с сетью в Docker Swarm - PullRequest
0 голосов
/ 05 марта 2020

Я пытался воспроизвести (на другой машине в той же сети) видео, воспроизводимое этим контейнером на docker -композиции с помощью роя.

services:
        vlc:
                image: boydachina/vlc-server
                ports: 
                        - 8080:8080
                        - 8554:8554
                networks:
                        - vlc_net
                command:
                        - cvlc -vvv /opt/vlc-media/python.mp4 --sout '#transcode{vcodec=h264,acodec=mpga,ab=128,channels=2,samplerate=44100}:rtp{sdp=rtsp://:8554/}'        
                volumes:
                        - ./media:/opt/vlc-media/ 
networks:
        vlc_net:

Но это как если бы нет сети от контейнера другой машины до моей машины. Я думал, что перевод в режим моста решит эту проблему, но я видел, что вы не можете перевести Docker Swarm в режим моста. Мне нужно воспроизвести видео на нескольких машинах в сети, у кого-нибудь есть какие-нибудь решения?

1 Ответ

2 голосов
/ 05 марта 2020

Перед развертыванием стека в рое создайте Docker Сеть с драйвером оверлея (обратите внимание, что имена сетей должны быть уникальными):

docker network create --driver overlay vlc_net

Это создаст оверлейная сеть, охватывающая весь рой.

Затем попробуйте настроить параметры сети следующим образом:

networks:
  vlc_net:
    driver: overlay
    external: true

Это также может помочь вам понять, как Traefik управляет его сеть в docker рое и попытайтесь скопировать его, так как все контейнеры в рое могут подключиться к Traefik, и это похоже на вариант использования, который вы пытаетесь решить.

...