- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
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端口) 。
。
。
查看容器 。
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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
所以最近(9 月 5 日)Alpine Linux 软件包仓库更新为 postgresql-client 12.4 我在我的 Dockerfile ( apk add postgresql-clien
当我运行 apk add --update ab 时出现错误: bash-4.3# apk add --update ab fetch http://dl-cdn.alpinelinux.org/al
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 9 个月前关闭。 Improve t
我有一个在 Alpine 发行版上运行的 docker 镜像,为了让我的一个要求工作 - pocketsphinx==0.1.15,我必须在我的 DockerFile 中安装一些依赖项: FROM p
我已按照以下步骤创建自定义 rootfs 镜像以使用 firecracker 启动:- https://github.com/firecracker-microvm/firecracker/blob/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在使用 alpine(最低 3.5)并且我需要使用 nodeJS 4.8.4 Docker 文件 FROM alpine:3.5 RUN apk add --update nodejs=4.8.4
使用 ruby-2.6.6-alpine 的 Docker 镜像创建了一个 498mb 的镜像大小。但是,当我降级到 ruby-2.6.5-alpine 时,它又回到了 266mb。 2.
我尝试在php:7.0-fpm-alpine上安装bz2扩展(基于Alpine 3.4): FROM php:7.0-fpm-alpine RUN docker-php-ext-install bz2
1、运行 fonts ,打开字体文件夹,找到要用的字体文件; 2、修改Dockerfile,例如: ?
我有这个Dockerfile ... FROM keymetrics/pm2:latest-alpine RUN apk update && \ apk upgrade && \ ap
我已经阅读了很多有关Docker容器和Unikernel的知识,以及如何在自己的应用程序中运行轻量级环境。 我知道Linux容器和Unikernel是不同的东西,因为第一个是内核功能(例如 names
我有一个 docker 镜像 nginx:stable-alpine,我需要使用 nginx-extras 为了使用 rewrite_by_lua指示。 我尝试通过 apk add --cached
堆高车 我正在使用Docker容器化我的应用程序。在下面的stage中,我尝试使用UPX对其进行打包。 FROM alpine:3.8 AS compressor # Version of upx t
我在CI / CD机器上使用Alpine linux。下面的docker文件: FROM node:10.15-alpine RUN npm i -g sequelize sequelize-cli
我正在尝试使用 The Badass Runtime Plugin 创建自定义运行时图像然后在 Alpine 上执行它。但它失败并显示以下错误消息。 jibcmd_1 | /bin/sh: exec
如何为所有语言安装字体?这是我的工作,但是Chrome中没有日语字体。 从此图像:https://github.com/Zenika/alpine-chrome/blob/master/Dockerf
是否可以在 Alpine Linux 中的 less 命令上启用鼠标滚动? 我尝试过使用 export LESS=-R 但没有任何作用。 最佳答案 Alpine 上默认的 less 由 BusyBox
我正在尝试在 alpine 中安装一个包,在本例中我指定了“jasper-dev”,但我和其他许多人都遇到过这种情况。我在终端中得到的输出是: / # apk add jasper-dev ERROR
当尝试安装 pdftk apk 时抛出此错误。 ERROR: unsatisfiable constraints: pdftk (missing): required by: world[
我是一名优秀的程序员,十分优秀!