Хромированный драйвер Docker Selenium не может запустить более 51 контейнера через VPN - PullRequest
0 голосов
/ 01 июля 2018
                   container ... linked through --net=container:VPNContainer 
                              -> Container 1 (runing chrome)
                              -> Container 2 (runing chrome)
    SYSTEM -> VPNContainer    -> Container 3 (runing chrome)
                              -> Container 4 (runing chrome)
                              -> Container ... (runing chrome)
                              -> Container 52 (running chrome)

У меня есть образ докера, который открывает chrome через python-> selenium -> chromedriver как только я запускаю 51 докер-контейнер через мой vpn-контейнер, я получаю

Message: unknown error: DevToolsActivePort file doesn't exist,
  (Driver info: chromedriver=2.40.565383 (76257d1ab79276b2d53ee976b2c3e3b9f335cde7),platform=Linux 4.9.93-linuxkit-aufs x86_64)

Как воспроизвести ошибку:

создать образ докера, который открывает Chrome запустить образ докера через образ контейнера vpn через

--net=container:yourvpncontainer

запустить более 51 контейнера через yourvpncontainer в контейнере 52 вы получите ошибку.

контейнер vpn


Как решить эту проблему и почему эта ошибка возникает?

каждый контейнер Docker имеет свой собственный chromedriver и работает сам по себе, так что нет никакого концентратора селена или т. Д., Только образ Docker, который имеет все в себе, так почему я получаю ошибку порта, я просто использую vpn через команду net как моя сеть? и как это решить

1 Ответ

0 голосов
/ 02 июля 2018

Если вы запускаете свои контейнеры вручную в VPN, значит, это неполная реализация докера. Лучший способ использовать docker здесь - это файл docker-compose .

selenium-hub:
  image: selenium/hub
  ports:
  - 4444:4444

chrome:
  image: selenium/node-chrome
  links:
  - selenium-hub:hub
  environment:
    HUB_HOST: hub
  volumes:
  - /dev/shm:/dev/shm 

firefox:
  image: selenium/node-firefox
  environment:
    HUB_PORT_4444_TCP_ADDR: hub
  links:
  - selenium-hub:hub 

Все, что вам нужно сделать, это запустить docker-compose up -d в каталоге, содержащем этот файл yml, и он породит концентратор с 1 хромом и 1 узлом firefox. Журнал консоли отключен, и если вы хотите это увидеть, просто опустите ключ -d в этой команде.

Теперь, чтобы увеличить масштаб, откройте новый терминал в том же каталоге, в котором находится этот файл, и запустите docker-compose scale chrome=5 firefox=5 и BOOM! общее число узлов FF равно 5, а общее число узлов Chrome - 5 *. 1011 *

Запустите docker ps и сразу увидите статус всех работающих контейнеров.

...