win10安装docker(配置国内镜像加速)并实现scrapy通过splash爬取动态网页

1、Docker溯源

Docker的前身是名为dotCloud的小公司,主要提供的是基于 PaaS(Platform as a Service,平台及服务)平台为开发者或开发商提供技术服务,并提供的开发工具和技术框架。因为其为初创的公司,又生于IT行业,dotCloud受到了IBM,亚马逊,google等公司的挤压,发展举步维艰。于是,在2013年dotCloud 的创始人,年仅28岁的Solomon Hykes做了一个艰难的决定:将dotCloud的核心引擎开源!然而一旦这个基于 LXC(Linux Container)技术的核心管理引擎开源,dotCloud公司就相当于走上了一条"不归路"。可正是这个孤注一掷的举动,却带来了全球技术人员的热潮,众程序员惊呼:太方便了,太方便了。也正是这个决定,让所有的IT巨头也为之一颤。一个新的公司也随之出世,它就是:Docker。可以说,Docker是一夜成名的!!

2、认识docker

2.1 镜像、容器、仓库

首先,需要了解一下几个概念:

镜像(image):Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。镜像是一种文件结构。Dockerfile中的每条命令都会在文件系统中创建一个新的层次结构,文件系统在这些层次上构建起来,镜像就构建于这些联合的文件系统之上。Docker官方网站专门有一个页面来存储所有可用的镜像,网址是:index.docker.io。

容器( Container):容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境,Docker 利用容器来运行应用。

仓库:仓库是集中存放镜像文件的场所,仓库注册服务器(Registry)上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。目前,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。

2.2 docker定义

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。Docker是一个重新定义了程序开发测试、交付和部署过程的开放平台,Docker则可以称为构建一次,到处运行,这就是Docker提出的"Build once,Run anywhere"

Docker仓库用来保存我们的images,当我们创建了自己的image之后我们就可以使用push命令将它上传到公有或者私有仓库,这样下次要在另外一台机器上使用这个image时候,只需要从仓库上pull下来就可以了。注意:Docker不是容器,而是管理容器的引擎!

Docker中文手册上解释说:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

从这里我们可以看出,Docker并非是容器,而是管理容器的引擎。Docker是为应用打包、部署的平台,而非单纯的虚拟化技术。

3、docker安装

3.1 环境准备

先检查你的机器是否支持硬件虚拟化技术(Hardware Virtualization Technology)并且已被启用。什么是硬件虚拟化技术

对于windows系统,可以通过两种方式查看CPU是否支持虚拟化,具体操作步骤及方法点击这里

扫描二维码关注公众号,回复: 5367964 查看本文章

你可以在 任务管理器->性能 中查看到你的电脑是否开启了虚拟化


3.2 下载docker

下载地址1:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

下载地址2:https://docs.docker.com/toolbox/overview/

3.3 安装docker

安装没有什么特别注意的,安装完成后,桌面上会增加三个图标:

img

以管理员身份运行Docker Quickstart Terminal,就会启动一个终端,第一次启动的话你会看到命令行会输出一些东西,这是docker在初始化配置,等待一下,它会配置Docker Toolbox,之后,当它完成后,你会看到启动成功的画面。 

这个终端是运行在bash环境下的,而不是标准的windows命令行,因为Docker需要运行在bash环境下,否则一些命令无法运行。 

4、docker入门

4.1 查看docker版本信息

输入docker version

4.2 运行docker run hello-world以测试从Docker Hub中拉取图像并启动容器 

5、docker国内源加速

在搜索镜像或下载的时候会出现类似Error response from daemon: Get https://index.docker.io/v1/search?q=sameersbn&n=25:  dial tcp: lookup index.docker.io on 192.168.65.1:53: read udp 192.168.65.2:45190->192.168.65.1:53: i/o timeout这样的提示,主要原因是镜像都在国外,访问过慢,所以我们需要换成国内的docker源加速,下面这个是免费的,速度很快,很赞!https://www.daocloud.io/mirror#accelerator-doc,具体更改步骤如下:

到刚才的网站注册一个账号,然后就可以看到对应系统的镜像加速地址了,记下地址。

然后在终端中依次打入下面四条命令(替换其中的加速地址)将上面网页的链接地址添加到如下标红字段即可。 

1. docker-machine ssh default
2. sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror="http://xxxx.m.daocloud.io" |g" /var/lib/boot2docker/profile
3. exit
4. docker-machine restart default

6、安装Splash渲染引擎

执行:docker pull scrapinghub/splash 

7、scrapy通过splash爬取动态网页

本机环境:win10 + pyCharm

a. 在爬取网页前需先在win10上安装并启动docker,并拉取scrapinghub/splash;

b. 然后在对应端口开启Splash服务,命令如下:docker run -p 8050:8050 -p 8051:8051 scrapinghub/splash;Splash服务开启后,docker终端处于listen状态。

c. 在pyCharm下实现动态网页爬取代码,如下图示(注意SPLASH_URL与docker配置信息对应):

settings.py中配置如下:

爬虫部分代码如下:

docker部分参考:https://blog.csdn.net/IT_xiao_bai/article/details/83070070 

猜你喜欢

转载自blog.csdn.net/jiangganwu/article/details/87660249