目錄html
unama -a
sudo apt-get update
sudo apt-get install -y docker.io
爲了永久性保留更改,您能夠修改 /etc/docker/daemon.json 文件並添加上 registry-mirrors 鍵值。node
{ "registry-mirrors": ["https://registry.docker-cn.com"] }
修改保存後重啓 Docker 以使配置生效。python
sudo service docker start
sudo service docker restart
sudo docker version
這裏我發現,許多操做都須要sudo,才能正常完成git
systemctl enable docker
注意了,必須是CentOS7及以上,否則無法裝docker-ce版,其他的網上不少教程,略github
官方githubweb
sudo docker search selenium
1>下載主hub鏡像(用於管理的)chrome
sudo docker pull selenium/hub
2>下載主node chrome鏡像(實際幹活的)docker
sudo docker pull selenium/node-chrome
1>啓動selenium/hubjson
sudo docker run -d -P --name selenium-hub selenium/hub
2>啓動selenium/node-chromeubuntu
sudo docker run -d --link selenium-hub:hub selenium/node-chrome
selenium-hub
並設置別名hub
3>可選,擴大鏈接
能夠使用以下方式擴大併發
docker run -d -P -e GRID_TIMEOUT=1800 -e GRID_MAX_SESSION=5 --name selenium-hub selenium/hub
-e GRID_TIMEOUT=1800
限制鏈接時間(s爲單位,30分鐘後,無論怎樣都會斷開鏈接)-e GRID_MAX_SESSION=5
擴大會話數(上面默認是1)docker run -d -e NODE_MAX_INSTANCES=5 -e NODE_MAX_SESSION=5 --link selenium-hub:hub selenium/node-chrome
-e NODE_MAX_INSTANCES=5
-e NODE_MAX_SESSION=5
4>可選,偶然去github看了項目的md,官方指定的部署命令
# 官方的 docker network create grid docker run -d -p 4444:4444 --net grid --name selenium-hub selenium/hub docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-chrome # 結合一下,擴大併發的選項 docker network create grid docker run -d -p 4444:4444 --net grid -e GRID_MAX_SESSION=5 -e GRID_TIMEOUT=900 --name selenium-hub selenium/hub docker run -d --net grid -e NODE_MAX_INSTANCES=5 -e NODE_MAX_SESSION=5 -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-chrome
真的是簡便多了!docker-compose 輕鬆部署多容器
1>查看運行狀況
sudo docker ps
以下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3a17f7233a7b selenium/node-chrome "/opt/bin/entry_poin…" 7 minutes ago Up 7 minutes cranky_haibt 9b273239c034 selenium/hub "/opt/bin/entry_poin…" 10 minutes ago Up 10 minutes 0.0.0.0:32768->4444/tcp selenium-hub
2>打開瀏覽器: http://192.168.81.98:32768/grid/console
能夠看到部署了一臺chrome
程序調用測試代碼:
from selenium import webdriver driver = None try: driver = webdriver.Remote(command_executor='http://192.168.81.98:32768/wd/hub', desired_capabilities={'browserName': 'chrome'}) driver.get('https://www.baidu.com') driver.implicitly_wait(15) driver.get_screenshot_as_file("./baidu_img.png") print("OK") finally: if driver is not None: driver.quit()