假設我們要在10臺Ubuntu 部署爬蟲如何搞之?用傳統的方法會吐血的,除非你記錄下來每個步驟,然后步驟之間的次序還完全一樣,這樣才行。但是這樣還是累啊,個別軟件下載又需要時間。所以Docker出現了。Docker把系統,各種需要的應用,還有設置編譯成一個image,然后 run一下就可以了。跟虛擬機的區別是不需要而外的物理支持,共用的。
1. 部署步驟
1.1 上傳本地scrapy爬蟲代碼除了settings外到git 服務器
1.2 編寫Dockerfile文件,把settings和requirements.txt 也拷貝到image里,一起打包成一個image
Dockerfile內容:
FROM ubuntuRUN apt-get updateRUN apt-get install -y gitRUN apt-get install -y nano RUN apt-get install -y redis-server RUN apt-get -y dist-upgradeRUN apt-get install -y openssh-serverRUN apt-get install -y python3.5 python3-pipRUN apt-get install -y zlib1g-dev libffi-dev libssl-devRUN apt-get install -y libxml2-dev libxslt1-devRUN mkdir /codeWORKDIR /codeADD ./requirements.txt /code/ADD ./settings.py /code/RUN mkdir /code/myspiderRUN pip3 install -r requirements.txtVOLUME [ "/data" ]
requirements.txt 內容:
BeautifulSoup4scrapysetuptoolsscrapy_redisredissqlalchemypymysqlpillow
整個目錄結構:
docker build -t fox6419/scrapy:scrapyTag .
fox6419是用戶名,scrapyTag是tag
成功后,執行docker images可以在本地看到image
1.3 打包的image 上傳到docker hub中
docker push username/repository:tag
push的命令格式是這樣的,我這邊就是:
docker push fox6419/scrapy:scrapyTag
1.4 在DigitalOcean這種主機商創建帶docker應用的Ubuntu 16.04版本
1.5 登陸docker,拉下1.3的image,然后run起來
docker run -it fox6419/scrapy:scrapyTag /bin/bash
1.6 命令進去后,git clone 1.1中的爬蟲,然后復制images里的settings到爬蟲目錄,然后執行scrapy crawl xxx即可
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答
圖片精選