一、下载alpine镜像

[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 

二、编写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
-rw-r--r-- 1 root root 1394 10月 10 11:36 Dockerfile 

编写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
 
# 同步时间
 
# 更新源、安装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服务

三、创建镜像

创建镜像

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

查看镜像

[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 

四、创建容器

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

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

查看容器

[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 

登录容器

[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)"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:~# 

五、测试

创建个scrapy项目测试

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# 

测试成功

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

标签:
alpine,dockerfile,Scrapy,dockerfile创建Scrapy镜像

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。