欢迎来到3C源码网
3C源码网

基于alpine用dockerfile创建的爬虫Scrapy镜像的实现

日期: 2020-02-23 19:01:16

时间:2019-01-05 来源/作者:一本正经的搞事情 编辑:源码库 文章热度:

一、下载alpine镜像

[root@DockerBrian ~]# docker pull alpineUsing default tag: latestTrying to pull repository docker.io/library/alpine ...latest: Pulling from docker.io/library/alpine4fe2ade4980c: Pull completeDigest: sha256:621c2f39f8133acb8e64023a94dbdf0d5ca81896102b9e57c0dc184cadaf5528Status: Downloaded newer image for docker.io/alpine:latest[root@docker43 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdocker.io/alpine latest 196d12cf6ab1 3 weeks ago 4.41 MB 

二、编写Dockerfile

创建scrapy目录存放dockerfile文件

[root@DockerBrian ~]# mkdir /opt/alpineDockerfile/[root@DockerBrian ~]# cd /opt/alpineDockerfile/[root@DockerBrian alpineDockerfile]# mkdir scrapy && cd scrapy && touch Dockerfile[root@DockerBrian alpineDockerfile]# cd scrapy/[root@DockerBrian scrapy]# ll总用量 4

编写dockerfile文件

FROM alpine MAINTAINER alpine_python3_scrapy (zhujingzhi@123.com) RUN echo "http://mirrors.aliyun.com/alpine/latest-stable/main/" > /etc/apk/repositories && \  echo "http://mirrors.aliyun.com/alpine/latest-stable/community/" >> /etc/apk/repositories  RUN apk update && \  apk add --no-cache openssh-server tzdata && \  cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \  sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config && \  ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key && \  ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key && \  ssh-keygen -t ed25519 -P "" -f /etc/ssh/ssh_host_ed25519_key && \  echo "root:h056zHJLg85oW5xh7VtSa" | chpasswd RUN apk add --no-cache python3 python3-dev gcc openssl-dev openssl libressl libc-dev linux-headers libffi-dev libxml2-dev libxml2 libxslt-dev openssh-client openssh-sftp-server RUN pip3 install --default-timeout=100 --no-cache-dir --upgrade pip setuptools pymysql pymongo redis scrapy-redis ipython Scrapy requests RUN echo "/usr/sbin/sshd -D" >> /etc/start.sh && \  chmod +x /etc/start.sh EXPOSE 22 CMD ["/bin/sh","/etc/start.sh"] 

实现了容器可以SSH远程访问 基于Python3 环境安装的Scrapy,通过start.sh脚本启动SSH服务

三、创建镜像

创建镜像

[root@DockerBrian scrapy]# docker build -t scrapy_redis_ssh:v1 . 

查看镜像

[root@DockerBrian scrapy]# docker imagesREPOSITORY     TAG         IMAGE ID      CREATED       SIZEscrapy_redis_ssh  v1         b2c95ef95fb9    4 hours ago     282 MBdocker.io/alpine  latest       196d12cf6ab1    4 weeks ago     4.41 MB 

四、创建容器

创建容器(名字为scrapy10086 远程端口是映射宿主机10086端口)

 

复制代码代码如下: docker run -itd --restart=always --name scrapy10086 -p 10086:22 scrapy_redis_ssh:v1

 

查看容器

[root@DockerBrian scrapy]# docker psCONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS          NAMES7fb9e69d79f5    b2c95ef95fb9    "/bin/sh /etc/star..."  3 hours ago     Up 3 hours     0.0.0.0:10086->22/tcp  scrapy10086 

登录容器

[root@DockerBrian scrapy]# ssh root@127.0.0.1 -p 10086 The authenticity of host '[127.0.0.1]:10086 ([127.0.0.1]:10086)' can't be established.ECDSA key fingerprint is SHA256:wC46AU6SLjHyEfQWX6d6ht9MdpGKodeMOK6/cONcpxk.ECDSA key fingerprint is MD5:6a:b7:31:3c:63:02:ca:74:5b:d9:68:42:08:be:22:fc.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '[127.0.0.1]:10086' (ECDSA) to the list of known hosts.root@127.0.0.1's password:                                # 这里的密码就是dockerfile中定义的 echo "root:h056zHJLg85oW5xh7VtSa" | chpasswdWelcome to Alpine! The Alpine Wiki contains a large amount of how-to guides and generalinformation about administrating Alpine systems.See <http://wiki.alpinelinux.org>. You can setup the system with the command: setup-alpine You may change this message by editing /etc/motd. 7363738cc96a:~# 

五、测试

创建个scrapy项目测试

7363738cc96a:~# scrapy startproject testNew Scrapy project 'test', using template directory '/usr/lib/python3.6/site-packages/scrapy/templates/project', created in:  /root/test You can start your first spider with:  cd test  scrapy genspider example example.com7363738cc96a:~# cd test/7363738cc96a:~/test# lsscrapy.cfg test7363738cc96a:~/test# cd test/7363738cc96a:~/test/test# ls__init__.py   __pycache__   items.py    middlewares.py pipelines.py  settings.py   spiders7363738cc96a:~/test/test# 

测试成功

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持ASPKU源码库。


注:相关教程知识阅读请移步到服务器教程频道。

上一篇:基于alpine用dockerfile创建的tomcat镜像的实现

下一篇:SVN服务备份操作步骤分享