• Docker部署selenium程序-从本地到云服务器-详细步骤



    前言

    `相信大家在本地写的selenium程序有时候会经常要在本地定时运行,但是一直放在本地总是比较繁琐,今天教大家如何用docker将本地selenium程序部署到云服务器中后台运行


    一、项目文件放到服务器中

    该环节主要是将本地的程序文件和依赖文件放到服务器当中

    • 1、先要把requirements.txt文件导出,
      很简单
      在项目的目录终端输入两条命令就ok了

        		  pip freeze > requirements.txt  
        		  pip install -r requirements.txt 
      
      • 1
      • 2
    • 使用git工具将项目拉取到云服务器中,git有小伙伴不会使用可以看一下
      git简单操作,几分钟就能使用

    二、Docker在Centos7中的下载

    这里如果有小伙伴未使用过Docker,可以跳转到尚硅谷Docker实战这一节学习安装
    https://www.bilibili.com/video/BV1gr4y1U7CY?p=11&spm_id_from=333.880.my_history.page.click&vd_source=92669d6611115d3f4999ff10432158a9

    三、设置镜像加快下载速度

    • 查看是否在docker.service文件中配置过镜像地址
    systemctl cat docker | grep '\-\-registry\-mirror'
    
    • 1

    若有输出,则执行systemctl cat docker查看ExecStart出现位置,修改对应文件去掉–registry-mirror参数及其值,再执行接下来的步骤


    • 编辑/etc/docker/daemon.json文件
    vi etc/docker/daemon.json
    
    • 1
    {
        "registry-mirrors": [
        "https://mirror.baidubce.com",
        "https://docker.mirrors.ustc.edu.cn/"
        ]
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    • 保存退出镜像就设置成功了
      之后在重启一下
    systemctl daemon-reload
    systemctl restart docker
    
    • 1
    • 2

    四、编写dockerfile

    在你的main.py的目录当中vim Dockerfile创建Dockerfile文件

    FROM python:3.7   # 以py3.7为镜像基础
    
    ENV PATH /usr/local/bin$PATH  # 设置环境
    
    ADD . /《你的项目文件名即可》
    
    
    WORKDIR /《你的项目文件名即可》
    
    RUN pip install -r requirements.txt # 下载依赖
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    编写完了之后执行docker build . -t selenium_py:v1
    selenium_py:镜像名
    v1:版本号

    执行了执行docker images看是否有镜像已查看是否镜像生成成功


    五、编写Docker-compose

    同样在当前目录执行vim docker-compose.yml

    然后在这个文件编写docker-compose:

    version: "2.0"
    services:
      python:
        image: selenium_py:v1
        volumes:
          - ./main.py:/root/main.py  # 将本地文件映射到容器内,前面的路径是本机的,后面的是容器的。注意:可以指定具体文件,也可以指定路径
        command: python /root/main.py  # 定义启动容器执行的命令
        depends_on:
          - chrome #映射的域名,脚本中要把域名改成这个
      chrome:
        image: selenium/standalone-chrome:latest
        ports:
          - "4444:4444"
        shm_size: 2g
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    保存退出


    六、执行项目

    这是一个简单示范

    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    import time
    
    time.sleep(5)
    driver = webdriver.Remote(
        command_executor="http://chrome:4444/wd/hub",
        desired_capabilities=DesiredCapabilities.CHROME
    )            # 一定要注意这里跟本地的直接Chrome()是不一样的!!!
    
    driver.get("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=%E5%A5%B3%E7%A5%9E%E8%8A%82%E5%BF%AB%E4%B9%90&oq=iPad%25E7%2594%25BB%25E6%25B0%25B4%25E5%25BD%25A9&rsv_pq=da863c960031fa89&rsv_t=320bU5S7GOOB43J2GLgjE66RWcLR2giCuNktmA5I6Wm7VcW7dZ1It2hKWxs&rqlang=cn&rsv_enter=1&rsv_dl=tb&inputT=8595&rsv_sug3=16&rsv_sug1=14&rsv_sug7=101&rsv_sug2=0&rsv_sug4=11686")
    content = driver.title.split("_")[0]
    print(content)
    driver.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    执行docker-compose up

    看到输出:女神节快乐
    运行成功

    之后就可以重新运行docker-compose up -d进行后台运行


    总结

    至此整个流程就结束了

  • 相关阅读:
    Vue--》详解Vue组件生命周期的三个阶段
    从飞天到倚天 阿里云底层自研技术大爆发
    【Python】面向对象 -没有对象?new一个吧
    Vue详解知识概括
    [C/C++]数据结构----顺序表的实现(增删查改)
    【时区】Flink JDBC 和CDC时间字段时区 测试及时间基准
    基于 Python 的豆瓣电影分析、可视化系统,附源码
    【ESD专题】TVS管的选择的误区及钳位电压测试方法
    CDR最新CorelDRAWX8安装步骤教程
    C++前缀和算法的应用:从仓库到码头运输箱子原理、源码、测试用例
  • 原文地址:https://blog.csdn.net/qq_51898139/article/details/126360693