一、docker安装

Ubuntu

1.检查内核版本大于3.10

unama -a

2.更新apt源

sudo apt-get update

3.安装docker

sudo apt-get install -y docker.io

4.(建议)更新成国内源

为了永久性保留更改,您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。

{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

修改保存后重启 Docker 以使配置生效。

5.启动、重启docker

sudo service docker start
sudo service docker restart

(可选)检查docker运行情况

sudo docker version

这里我发现,许多操作都需要sudo,才能正常完成

(可选)运行系统引导时启用 docker,

systemctl enable docker

CentOS7

注意了,必须是CentOS7及以上,不然没法装docker-ce版,其余的网上很多教程,略

二、配置selenium容器

官方github

1.从dockerhub搜索image

sudo docker search selenium

2.选择合适的image

1>下载主hub镜像(用于管理的)

sudo docker pull selenium/hub

2>下载主node chrome镜像(实际干活的)

sudo docker pull selenium/node-chrome

3.启动docker image

1>启动selenium/hub

sudo docker run -d -P --name selenium-hub selenium/hub
  • -d 表示容器以守护态(Daemonized)形式运行
  • -P 表示 Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口
  • --name 取个容器名NAMES

2>启动selenium/node-chrome

sudo docker run -d --link selenium-hub:hub selenium/node-chrome
  • --link 表示关联到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部署

真的是简便多了!docker-compose 轻松部署多容器

4.验证成功

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

  • 这里根据上图的0.0.0.0:32768可知暴露端口为32768
  • ubuntu主机ip:192.168.81.98

5.python程序调用

程序调用测试代码:

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

ubuntu安装Docker并部署selenium-grid的更多相关文章

  1. ubuntu安装docker以及基本用法

    ubuntu安装docker以及基本用法 一.安装 安装前先更新apt-get源到最新版本 apt-get update 使用ubuntu自带的docker安装包安装docker apt-get in ...

  2. Ubuntu安装docker笔记

    前言   根据参考文档简单记录Ubuntu系统安装docker的步骤 系统版本 panzi@ubuntu:~$ cat /etc/issue Ubuntu 16.04.5 LTS \n \l 移除旧版 ...

  3. 总结关于Ubuntu 安装 Docker 配置相关问题及解决方法

    总结关于Ubuntu 安装 Docker 配置相关问题及解决方法 Tomcat 示例 软件镜像(xx安装程序)----运行镜像----产生一个容器(正在运行的软件,运行的xx): 步骤: 1.搜索镜像 ...

  4. ubuntu 安装 docker 并配置镜像加速(使用 apt-get 进行安装)

    ubuntu 安装docker CentOS docker安装 https://blog.csdn.net/weixin_44953227/article/details/108597310 你需要这 ...

  5. Docker笔记--ubuntu安装docker

    Docker笔记--ubuntu安装docker 1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选) sudo cp /etc/apt/sources.list /etc/apt/sourc ...

  6. Linux 上安装Docker 并部署netcor2.1

    述 容器,顾名思义是用来存放并容纳东西的器皿: 而容器技术伴着Docker的兴起也渐渐的映入大家的眼帘,它是一个抽象的概念,同时也是默默存在世上多年的技术,不仅能使应用程序间完全的隔离,而且还能在共享 ...

  7. Ubuntu安装 Docker CE,VNC访问docker图形界面并安装ROS

    从包安装 如果您无法使用Docker的存储库来安装Docker CE,则可以下载.deb适用于您的发行版的 文件并手动安装.每次要升级Docker CE时都需要下载新文件. 安装Docker CE,将 ...

  8. Ubuntu安装Docker 适合Ubuntu17.04版本

    Docker介绍 Docker是一个开源的容器引擎,它有助于更快地交付产品.Docker可将应用程序和基础设施层隔离,并且将基础设施当作程序一样进行管理.使用Docker,可以更快地打包,测试以及部署 ...

  9. 安装docker并部署web项目

    一.docker简介 1.docker定义:docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以装笔,书包可以放书一样.你可以把“Hello World!”放到docker中,也可以把网站放 ...

随机推荐

  1. C++ 多线程(两个线程卖火车票)

    #include <windows.h> #include <iostream.h> DWORD WINAPI Fun1Proc(LPVOID lpParameter);//t ...

  2. AutoFac文档6(转载)

    目录 开始 Registering components 控制作用域和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 实例生命周期 实例生 ...

  3. 二级指针 (C语言)

    二级指针又叫双指针.C语言中不存在引用,所以当你试图改变一个指针的值的时候必须使用二级指针.C++中可以使用引用类型来实现. 下面讲解C中的二级指针的使用方法. 例如我们使用指针来交换两个整型变量的值 ...

  4. 【Android】15.3 Notification基础知识

    分类:C#.Android.VS2015: 创建日期:2016-02-29 一.如何向用户发出通知 1.使用Toast通知用户 前台任务中的通知(Notifications)一般用于长时间显示用户正在 ...

  5. netty内存泄漏

    关于netty本身内存泄漏的资料,在此记录一下:https://blog.csdn.net/hannuotayouxi/article/details/78827499

  6. iOS应用程序状态切换相关

    一.iOS应用程序状态机一共有五种状态: 1. Not running:应用还没有启动,或者应用正在运行但是途中被系统停止. 2. Inactive:当前应用正在前台运行,但是并不接收事件(当前或许正 ...

  7. 利用css3背景位置完成拼图

    .duo { width: 623px; height: 417px; margin: 100px auto; background: url(images/bg1.png) left top no- ...

  8. 关于love2d教程的更新

    实在抱歉,每周工作六天,一天13小时以上,周日想休息一下,love2d的估计一个月一篇都很难做到了. 三个月后公司的项目应该做完了,那时应该有时间了. love2d估计快发布0.9了,改动应该不是很大 ...

  9. 示例 - 如何在ASP.NET中应用Spider Studio生成的DLL?

    >> 接前文 "示例 - 如何在Console应用程序中应用SpiderStudio生成的DLL?", 将其运用到ASP.NET中: 1. 创建WebApplicati ...

  10. php 的rabbitmq 扩展模块amqp安装

    php 的rabbitmq 扩展模块amqp安装 2017年10月08日 10:34:22 阅读数:240 使用PHP开发,要使用中间队列rabbitmq, 必须要安装PHP的扩展模块amqp, 服务 ...