目录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()