前面的文章介紹了怎麼用scrapy去完成一個爬蟲,涉及動態抓取和登陸等操做。這篇文章簡單介紹怎麼讓爬蟲運行在服務器的docker裏。python
##步驟git
###詳細步驟: 首先安裝sshfs工具,能夠參考網上教程。 接着切換到我的目錄,新建 aliyun
文件夾。github
localhost:~ swensun$ cd ~
localhost:~ swensun$ mkdir aliyun
localhost:~ swensun$ sshfs 120.78.202.210:/ aliyun/
複製代碼
以後輸入密碼,打開aliyun目錄,便可看到的服務器上的目錄掛載到了本地,能夠本地編輯,保存。docker
/Users/swensun/aliyun/home/swensun/App/docker/spider
在該目錄下新建Dockerfile文件,最簡單內容以下,數據庫
FROM python:latest
RUN apt-get update \
&& apt-get install -y vim \
&& rm -rf /var/lib/apt/lists/*
複製代碼
這裏執行了最簡單的操做,下載python鏡像,並執行RUN後面的命令。vim
ssh鏈接到服務器, 切到相應目錄, 執行sudo docker build -t pythonspider .
命令, 下載生成鏡像, 輸出以下: bash
sudo docker images
命令,能夠看到已經生成了pythonspider鏡像。
docker-compose.yml
文件。 文件目錄以下:
docker-compose.yml
文件內容:服務器
version: '2'
services:
spider:
image: pythonspider
volumes:
- ./zhihu:/spider
tty: true
複製代碼
簡單解釋:services可啓動多個服務,好比數據庫,nignx和執行程序配合生成一個容器。該服務叫spider,利用前面下載的pythonspider鏡像,將./zhihu
數據卷同步到docker中。tty保證建立容器後保持後臺運行,以避免建立後關閉。 執行以下命令: ssh
能夠看到數據卷spider已經在根目錄。進入根目錄,執行爬蟲(須要安裝python須要的包,也能夠在前面的dockerfile中安裝)。 scrapy
能夠看到和本地輸出了同樣的結果,說明docker中運行scrapy成功。關於Dockerfile和docker-compose的其餘命令及其高級用法,我也不是很懂,後面慢慢研究。
總結: 本文介紹了sshfs工具的使用,以及docker的安裝與部署。 (Dockerfile和docker-compose)。
weixin:youquwen1226 github:https://github.com/yunshuipiao
歡迎來信一塊兒探討。