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

简介: 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实战这一节学习安装
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'

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


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

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

四、编写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 # 下载依赖

编写完了之后执行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

保存退出


六、执行项目

这是一个简单示范

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进行后台运行


总结

至此整个流程就结束了

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
174 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
1月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
791 12
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
1月前
|
弹性计算 开发工具 git
2分钟在阿里云ECS控制台部署个人应用(图文示例)
作为一名程序员,我在部署托管于Github/Gitee的代码到阿里云ECS服务器时,经常遇到繁琐的手动配置问题。近期,阿里云ECS控制台推出了一键构建部署功能,简化了这一过程,支持Gitee和GitHub仓库,自动处理git、docker等安装配置,无需手动登录服务器执行命令,大大提升了部署效率。本文将详细介绍该功能的使用方法和适用场景。
2分钟在阿里云ECS控制台部署个人应用(图文示例)
|
24天前
|
Java 应用服务中间件 Docker
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
29 2
|
1月前
|
Java Linux Docker
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
43 3
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
65 4
|
1月前
|
NoSQL 容灾 MongoDB
MongoDB主备副本集方案:两台服务器使用非对称部署的方式实现高可用与容灾备份
在资源受限的情况下,为了实现MongoDB的高可用性,本文探讨了两种在两台服务器上部署MongoDB的方案。方案一是通过主备身份轮换,即一台服务器作为主节点,另一台同时部署备节点和仲裁节点;方案二是利用`priority`设置实现自动主备切换。两者相比,方案二自动化程度更高,适合追求快速故障恢复的场景,而方案一则提供了更多的手动控制选项。文章最后对比了这两种方案与标准三节点副本集的优缺点,指出三节点方案在高可用性和数据一致性方面表现更佳。
|
1月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
1月前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
1月前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
63 1

热门文章

最新文章