我需要部署一个容器,该容器接收一个特定的正在运行的参数,例如一个目标ip,以对其运行bash脚本。
我可以在单个docker主机上启动并运行该容器,并且一切正常。
由于脚本的负载相当大,并且需要花费一些时间来执行,因此安排在5个不同的主机(每个主机具有不同的目标ip)上安排50个副本将很麻烦,因此docker swarm似乎简单的选择
说脚本是
#!/bin/bash
TARGET_IP=$1
FOO=(nmap -p- -oG - $TARGET_IP)
echo "waiting 1s for every up port"
x=$( wichever cut/awk/grep to get the number of open ports)
sleep ${x}s
echo "end"
FROM alpine:latest
RUN apk update
RUN apk add bash nmap
docker build high-load-scrip
(单个主机的命令) docker运行--rm -it high-load-scrip ./test.sh 172.0.0.1
目标主机为172.0.0.1至172.0.0.100
请原谅代码上任何明显的错误,因为我正在使用手机=)
我的第一个想法是制作一个简单的Web服务器,使您获得GET / POST,运行脚本并杀死容器,以使该目标不再成为目标。 要么 拥有一个僵尸脚本,该脚本要等到定义ENV之后,调用脚本并杀死容器,例如:
#add to Dockerfile
ENTRYPOINT /zombie.sh
while true; do
if sintax for checking if a variable exists
/test.sh
exit 0
else
sleep 5s
fi
done
我如何使用群体来实现这一点以利用工作量分配?