跳转到主要内容

Docker 与 docker-compose

通过 Docker 在 Linux 和 MacOS 上安装 A-Parser 是推荐的方式,我们准备了一个镜像,其中包含了 A-Parser 和 Headless Chrome 运行所需的所有依赖项和库。

安装前准备

下载发行版

下载并解压 A-Parser 发行版:

curl -O https://a-parser.com/members/onetime/ce42f308eaa577b5/aparser-linux-x64.tar.gz
tar zxf aparser-linux-x64.tar.gz
rm -f aparser-linux-x64.tar.gz
备注

通过适用于 Linux 的一次性链接进行下载。 您需要在会员中心A-Parser -> 下载 选项卡中获取该链接

通过 Docker 启动

在前台模式下启动

在前台模式下启动 A-Parser,以便在终端中查看日志:

docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground

选项 -foreground 会直接在终端输出日志文件内容:

Apr 27 07:06:53.10427 [master] foreground mode
Apr 27 07:06:54.06409 [master] Found local Chromium: /app/dist/nodejs/node_modules/puppeteer/.local-chromium/linux-856583/chrome-linux/chrome
Apr 27 07:06:55.36487 [master] NodeJS console: [Rank::CMS] total loaded 1446 apps
Apr 27 07:07:19.01377 [master] Start ProxyChecker nocheck
Apr 27 07:07:19.24418 [master] Start ProxyChecker default
Apr 27 07:07:19.62635 [master] A-Parser v1.2.1176-linux-x64 started, tasks: 0 / 2, memory total: 1989 MB, available: 610 MB

启动后,可以通过以下地址访问 A-Parser:http://127.0.0.1:9091

在后台启动

如需在后台运行容器,请使用以下命令:

docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime ./aparser

Docker 启动时的线程优化

默认情况下,容器内部对打开的文件/套接字数量有限制。要在通过 Docker 启动时将限制增加到 10240,请使用 --ulimit 选项:

docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 --ulimit nofile=10240:10240 -t -d aparser/runtime ./aparser

此外,建议在宿主机系统上执行针对多线程的 Linux 优化

在 Docker 容器中更新 A-Parser

停止容器:

docker stop aparser

更新 A-Parser:

docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground -doupdate

更新完成后启动 A-Parser

备注

您也可以通过界面或一次性链接进行更新

在 Headful 模式下运行

对于需要以 headful 模式(带有虚拟显示器)启动浏览器的网站数据抓取,请使用镜像 aparser/runtime:headful

从普通镜像切换到 headful 镜像:

停止容器:

docker stop aparser

下载 headful 镜像:

docker pull aparser/runtime:headful

使用新镜像启动 A-Parser:

docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime:headful ./aparser

对于 docker-compose,请在 docker-compose.yml 中更换镜像:

image: aparser/runtime:headful

然后执行:

docker compose up -d
备注

启动后,在爬虫工具设置中开启 Chrome headless: 0。在 Chrome 启动日志中应显示 Headful。 novnc 服务器在 5900 端口可用,用于视觉监控,密码通过变量 VNC_PASSWORD 设置(默认值:docker)。

通过 docker-compose 启动

docker-compose.yml 示例

创建 docker-compose.yml 文件:

version: '3'

services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091

通过 docker-compose 启动

启动 A-Parser:

docker compose up -d

在 docker-compose 中优化线程数

通过 docker-compose 运行时,容器内部会对打开的文件/套接字数量有限制。要将限制增加到 10240,请在 a-parser 服务中添加 ulimits 块:

services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
ulimits:
nofile:
soft: 10240
hard: 10240

同时建议在宿主机系统上进行 针对更多线程的 Linux 优化