zoukankan      html  css  js  c++  java
  • docker运行爬虫代码

    docker运行爬虫代码

    系统:Ubuntu

    在项目根目录的同级目录下新建 Dockerfile 文件,这个Dockerfile就作为打包项目的配置文件

    但是在这之前我还要做一件事情:就是将 python 依赖的一些基础环境打包成一个基础镜像,作为我们以后制作项目镜像的基础镜像,所以就有了 Dockerfile 文件。

    docker 启动与停止

    启动

    systemctl start docker
    

    查看状态

    systemctl status docker
    
    ● docker.service - Docker Application Container Engine
         Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor p>
         Active: active (running) since Tue 2020-07-28 07:28:45 UTC; 1 weeks 3>
    TriggeredBy: ● docker.socket
           Docs: https://docs.docker.com
       Main PID: 20612 (dockerd)
          Tasks: 56
    # 看到 active(running)什么已经启动
    

    停止

    systemctl stop docker
    

    镜像制作 Dockerfile

    在主目录下新建 Dockerfile 文件

    FROM python:3.7
    
    MAINTAINER Coolin
    
    ADD . /code
    
    WORKDIR /code
    
    RUN pip install -r requirements.txt
    
    CMD python task.py
    
    

    选项

    • From: 指定使用哪个镜像源

    • MAINTAINER: 设置作者名与联系邮箱

    • ADD: 是将本地的代码放置到虚拟容器中。它有两个参数:第一个参数是.,代表本地当前路径;第二个参数是/code,代表虚拟容器中的路径,也就是将本地项目所有内容放置到虚拟容器的/code目录下,以便于在虚拟容器中运行代码

    • WORKDIR: 是指定工作目录,这里将刚才添加的代码路径设成工作路径。这个路径下的目录结构和当前本地目录结构是相同的,所以我们可以直接执行库安装命令、爬虫运行命令等。

    • RUN: 指令告诉docker 在镜像内执行命令,安装了什么

    • CMD: 是容器启动命令。在容器运行时,此命令会被执行。在这里我们直接用scrapy crawl test来启动爬虫

    requirement.txt 是用来记录 python 项目所有依赖的包的 https://www.cnblogs.com/kai-/p/13454445.html


    build 镜像

    构建

    docker build  -t ImageName:TagName dir
    

    选项

    • -t − 给镜像加一个Tag
    • ImageName − 给镜像起的名称
    • TagName − 给镜像的Tag名
    • Dir − Dockerfile所在目录

    也可以在 Dockerfile 目录内进行构造,将代码也和 Dockerfile 放在一起

    sudo docker build -t my_spider:v1 .
    

    检查是否构建成功

    sudo docker images
    

    运行测试

    sudo docker run 镜像名
    

    新建并启动容器

    docker run -p 9090:9090 --name spider -d spider:1.17.0 
    
    • -d选项:表示后台运行
    • –name选项:指定运行后容器的名字为 spider,之后可以通过名字来操作容器
    • -p选项:指定端口映射,格式为:hostPort:containerPort

    镜像操作

    按镜像 id 删除镜像,加 -f 强制删除

    sudo docker rmi 镜像id
    

    搜索镜像命令:docker search 镜像名称

    docker search 镜像名称
    

    拉取镜像就是从中央仓库中下载镜像到本地

    docker pull 镜像名称
    

    删除所有镜像

    docker rmi docker images -q
    

    容器操作

    查看正在运行的容器

    docker ps
    

    查看所有容器(包括运行的和未运行的)

    docker ps –a
    

    查看最后一次运行的容器

    docker ps –l
    

    进入容器内部操作:

    sudo docker exec -it 容器名称(或者容器ID)  /bin/bash
    

    -i:表示运行容器

    -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。

    --name :为创建的容器命名(容器名称不能重复)。

    -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。

    -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。

    -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

    查看停止的容器

    docker ps -f status=exited
    
  • 相关阅读:
    iOS 自动识别URL(链接)功能的实现
    iOS 如何查看崩溃日志
    Swift-- 闭包
    Swift--方法(函数)
    Swift--控制流
    Swift--字典的了解
    数据存储与访问之——SharedPreferences
    汇编指令之STOS、REP
    汇编指令之ADC、SBB、XCHG、MOVS指令
    pushad与popad
  • 原文地址:https://www.cnblogs.com/kai-/p/13467923.html
Copyright © 2011-2022 走看看