You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在Windows Docker CE中通过批处理文件同时运行三个Python脚本容器

解决方案:批量启动三个Python脚本容器的批处理文件

没问题,我来帮你搞定这个批量启动容器的需求!下面分两步来实现:

第一步:提前构建好三个Docker镜像

首先你得确保三个Dockerfile对应的镜像已经构建完成。假设你的三个Dockerfile分别放在名为docker1docker2docker3的独立文件夹里(每个文件夹里放对应的Dockerfile、脚本和输入文件),打开命令提示符,分别执行以下命令构建镜像:

# 构建第一个容器的镜像,命名为python-script-1
docker build -t python-script-1 ./docker1

# 构建第二个容器的镜像,命名为python-script-2
docker build -t python-script-2 ./docker2

# 构建第三个容器的镜像,命名为python-script-3
docker build -t python-script-3 ./docker3

镜像名字可以根据你的喜好自定义,只要后面批处理里对应上就行。

第二步:编写批处理脚本(start_scripts.bat)

创建一个名为start_scripts.bat的文件,把下面的内容复制进去:

@echo off
echo 正在启动三个Python脚本容器...

# 启动第一个容器,--rm表示运行结束后自动删除容器,避免残留
docker run --rm --name script-container-1 python-script-1

# 启动第二个容器
docker run --rm --name script-container-2 python-script-2

# 启动第三个容器
docker run --rm --name script-container-3 python-script-3

echo 所有容器已启动完成!
pause

可选优化:后台运行容器

如果你不想让命令提示符被阻塞(每个容器运行完才会启动下一个),可以给docker run加上-d参数让容器在后台运行,修改后的命令如下:

@echo off
echo 正在后台启动三个Python脚本容器...

docker run -d --rm --name script-container-1 python-script-1
docker run -d --rm --name script-container-2 python-script-2
docker run -d --rm --name script-container-3 python-script-3

echo 所有容器已后台启动完成!
echo 可以用 `docker logs script-container-1` 查看第一个容器的运行日志
pause

额外小建议

如果你的输入文件需要经常修改,建议不要把文件COPY到镜像里,而是用Docker卷挂载的方式,这样修改输入文件后不需要重新构建镜像。比如第一个容器可以改成:

docker run --rm --name script-container-1 -v %cd%\docker1\input.csv:/input.csv python-script-1 python ./script.py /input.csv

这样你修改本地的input.csv后直接启动容器就能用最新的文件,不用重复构建镜像。

内容的提问来源于stack exchange,提问作者K.S

火山引擎 最新活动