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

前言

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


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

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

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

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

二、Docker在Centos7中的下载

这里如果有小伙伴未使用过Docker,可以跳转到尚硅谷Docker实战这一节学习安装 www.bilibili.com/video/BV1gr...

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

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

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


  • 编辑/etc/docker/daemon.json文件
bash 复制代码
vi etc/docker/daemon.json
bash 复制代码
{
    "registry-mirrors": [
    "https://mirror.baidubce.com",
    "https://docker.mirrors.ustc.edu.cn/"
    ]
}

  • 保存退出镜像就设置成功了 之后在重启一下
bash 复制代码
systemctl daemon-reload
systemctl restart docker

四、编写dockerfile

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

bash 复制代码
FROM python:3.7   # 以py3.7为镜像基础

ENV PATH /usr/local/bin$PATH  # 设置环境

ADD . /《你的项目文件名即可》


WORKDIR /《你的项目文件名即可》

RUN pip install -r requirements.txt # 下载依赖

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

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


五、编写Docker-compose

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

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

bash 复制代码
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

保存退出


六、执行项目

这是一个简单示范

bash 复制代码
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()

执行docker-compose up

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

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


总结

至此整个流程就结束了

相关推荐
木雷坞1 分钟前
vLLM 服务启动慢排查:NAS 模型目录、Docker 镜像和 GPU Runtime
docker·容器·vllm
古怪今人24 分钟前
WSL和Hyper-V Ubuntu安装docker Docker安装Reids、MySQL、PostgreSQL和RabbitMQ
运维·docker·容器
周易宅26 分钟前
Docker MySQL 8.0.45 性能优化配置文档
mysql·docker·性能优化
ん贤29 分钟前
Kubernetes 核心资源对象与应用编排基础
云原生·容器·kubernetes
LZZ and MYY39 分钟前
将Virtual PLCnext 部署在PVE的LXC容器
云原生·容器·kubernetes
仙柒41514 小时前
Docker存储原理
运维·docker·容器
快乐的哈士奇17 小时前
LangFuse 自托管实战:选型理由、Docker 部署与常用配置全解析
运维·人工智能·docker·容器
weixin_4492900118 小时前
Docker + MySQL 在 Windows 11 上的本地安装部署文档
mysql·docker·容器
Ysn071918 小时前
中文乱码:在 Docker 容器中设置中文语言环境
运维·python·docker·容器
米高梅狮子19 小时前
01.CentOS-Stream-8-packstack安装OpenStack
linux·云原生·容器·kubernetes·centos·自动化·openstack