【问题标题】:How can I stop currently running docker using bash script?如何使用 bash 脚本停止当前运行的 docker?
【发布时间】:2021-06-17 06:04:09
【问题描述】:

我有使用 docker 容器使用 Scrapy Splash 的刮板。我需要使用另一个 bash 脚本来启动和停止容器。

run_docker.sh
#! /bin/bash
echo "run docker"
sudo docker run -itt -p 8050:8050 --rm scrapinghub/splash

【问题讨论】:

  • 给你的容器一个--name,然后只是docker stop <name>。如果您打算重新启动它,--rm 参数可能没有帮助。

标签: python docker scrapy scrapy-splash


【解决方案1】:

添加另一个 bash 脚本,该脚本将运行爬虫程序并停止 docker 容器。

stop_docker_container.py
#! /bin/bash

cd critic_reviews/critic_reviews/spiders

echo "run merlinin-review..."
scrapy crawl merlinin-review
echo "merlinin, done..."

echo "run purexbox-review..."
scrapy crawl purexbox-review
echo "purexbox, done..."

con_id=$(eval "docker ps -q --filter ancestor=scrapinghub/splash")
docker stop "$con_id"
echo "docker container killed..."
echo "done process!!!"

变量con_id 将返回当前运行的docker container_id,并将用于停止它。

con_id=$(eval "docker ps -q --filter ancestor=scrapinghub/splash")
docker stop "$con_id"

我最近才得到它。如果需要任何改进,请随时在下面发表评论。谢谢。

【讨论】:

    猜你喜欢
    • 2020-05-05
    • 2021-12-11
    • 2022-06-10
    • 2010-09-19
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    相关资源
    最近更新 更多