亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

docker 容器中的 python jupyter notebook 連接到

docker 容器中的 python jupyter notebook 連接到

陪伴而非守候 2021-10-12 15:51:46
我使用以下docker-compose.yml命令運行基于jupyter/datascience-notebook:87210526f381和 的jupyter notebook selenium/node-chrome:    version: '3'    services:    selenium-hub:        image: selenium/hub:3.141.59-dubnium        container_name: selenium-hub        ports:        - "4444:4444"    chrome:        image: selenium/node-chrome:3.141.59-dubnium        volumes:        - /dev/shm:/dev/shm        depends_on:        - selenium-hub        environment:        - HUB_HOST=selenium-hub        - HUB_PORT=4444        networks:         - backend    nbdatascience:         container_name: nbdatascience        image: aabor/nbdatascience        build: nbdatascience/.        volumes:        - /home/$USER/py:/home/jovyan/work/py        - /home/$USER/.jupyter:/home/jovyan/.jupyter        ports:        - "10000:8888"        environment:        - TZ="Europe/Kiev"        restart: always        networks:         - backend        depends_on:        - chrome    networks:     backend:        driver: bridge當 selenium hub 上的所有這些容器都可以訪問時http://localhost:4444/,jupyter 實驗室在http://localhost:10000/lab.我正在嘗試從執行以下 python 腳本的筆記本打開 Web 瀏覽器會話:from selenium import webdriverfrom selenium.webdriver.common.desired_capabilities import DesiredCapabilitiescap = DesiredCapabilities.CHROMEdriver = webdriver.Remote(command_executor='localhost:4444', desired_capabilities=cap)更正:運行此 python 腳本可解決問題,已創建驅動程序并且可以在無頭模式下瀏覽 Internet:from selenium import webdriverfrom selenium.webdriver.common.desired_capabilities import DesiredCapabilitiescap = DesiredCapabilities.CHROME driver = webdriver.Remote(command_executor='http://selenium-hub:4444/wd/hub',desired_capabilities=cap)如何打開與在另一個 docker 容器中運行的 selenium chrome 的連接?SeleniumHQ/docker-selenium 中 的文檔缺少這些細節。docker network 上的文檔說“一旦連接,容器只能使用另一個容器的 IP 地址或名稱進行通信”,因此是否可以在 python 腳本中按名稱調用另一個容器,例如:driver = webdriver.Remote(command_executor='chrome', desired_capabilities=cap). 我試過這個命令,但它給了我同樣的錯誤:“連接被拒絕”。
查看完整描述

2 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

將您的selenium容器連接到同一網絡backend并selenium-hub:4444用作主機名而不是localhost:4444.


順便問一下,你聲明網絡有什么用?它是docker-compose默認創建的。


此外,無需顯式聲明container_name- 容器默認獲取其服務的名稱。


我建議進行以下更改:


docker-compose.yml


version: '3'

services:

  selenium-hub:

    image: selenium/hub:3.141.59-dubnium

    ports:

    - "4444:4444"

  chrome:

    image: selenium/node-chrome:3.141.59-dubnium

    volumes:

      - /dev/shm:/dev/shm

    depends_on:

      - selenium-hub

    environment:

      - HUB_HOST=selenium-hub

      - HUB_PORT=4444

  nbdatascience: 

    image: aabor/nbdatascience

    build: nbdatascience/.

    volumes:

      - /home/$USER/py:/home/jovyan/work/py

      - /home/$USER/.jupyter:/home/jovyan/.jupyter

    ports:

      - "10000:8888"

    environment:

      - TZ="Europe/Kiev"

    restart: always

    depends_on:

      - chrome

此外,如果您不從外部連接到容器,請刪除暴露的端口。


查看完整回答
反對 回復 2021-10-12
  • 2 回答
  • 0 關注
  • 272 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號