gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章基于alpine用dockerfile创建的爬虫Scrapy镜像的实现由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、下载alpine镜像 。

?
1
2
3
4
5
6
7
8
9
10
[root@DockerBrian ~] # docker pull alpine
Using default tag: latest
Trying to pull repository docker.io /library/alpine ...
latest: Pulling from docker.io /library/alpine
4fe2ade4980c: Pull complete
Digest: sha256:621c2f39f8133acb8e64023a94dbdf0d5ca81896102b9e57c0dc184cadaf5528
Status: Downloaded newer image for docker.io /alpine :latest
[root@docker43 ~] # docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io /alpine latest 196d12cf6ab1 3 weeks ago 4.41 MB

2、编写Dockerfile 。

创建scrapy目录存放dockerfile文件 。

?
1
2
3
4
5
6
7
[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
-rw-r--r-- 1 root root 1394 10月 10 11:36 Dockerfile

编写dockerfile文件 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 指定创建的基础镜像
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
 
# 同步时间
 
# 更新源、安装openssh 并修改配置文件和生成key 并且同步时间
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
 
# 安装Scrapy依赖包(必须安装的依赖包)
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
 
# 安装环境需要pip包(这里的包可以按照需求添加或者删除)
RUN pip3 install --default-timeout=100 --no-cache- dir --upgrade pip setuptools pymysql pymongo redis scrapy-redis ipython Scrapy requests
 
# 启动ssh脚本
RUN echo "/usr/sbin/sshd -D" >> /etc/start .sh && \
   chmod +x /etc/start .sh
 
# 开放22端口
EXPOSE 22
 
# 执行ssh启动命令
CMD [ "/bin/sh" , "/etc/start.sh" ]

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

3、创建镜像 。

创建镜像 。

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

查看镜像 。

?
1
2
3
4
[root@DockerBrian scrapy] # docker images
REPOSITORY     TAG         IMAGE ID      CREATED       SIZE
scrapy_redis_ssh  v1         b2c95ef95fb9    4 hours ago     282 MB
docker.io /alpine  latest       196d12cf6ab1    4 weeks ago     4.41 MB

4、创建容器 。

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

  。

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

  。

查看容器 。

?
1
2
3
[root@DockerBrian scrapy] # docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS          NAMES
7fb9e69d79f5    b2c95ef95fb9    "/bin/sh /etc/star..."  3 hours ago     Up 3 hours     0.0.0.0:10086->22 /tcp  scrapy10086

登录容器 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[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 )? yes
Warning: 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" | chpasswd
Welcome to Alpine!
 
The Alpine Wiki contains a large amount of how-to guides and general
information 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:~ #

5、测试 。

创建个scrapy项目测试 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
7363738cc96a:~ # scrapy startproject test
New 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.com
7363738cc96a:~ # cd test/
7363738cc96a:~ /test # ls
scrapy.cfg test
7363738cc96a:~ /test # cd test/
7363738cc96a:~ /test/test # ls
__init__.py   __pycache__   items.py    middlewares.py pipelines.py  settings.py   spiders
7363738cc96a:~ /test/test #

测试成功 。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://www.cnblogs.com/zhujingzhi/p/9766965.html 。

最后此篇关于基于alpine用dockerfile创建的爬虫Scrapy镜像的实现的文章就讲到这里了,如果你想了解更多关于基于alpine用dockerfile创建的爬虫Scrapy镜像的实现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com