docker swarm服务,将args传递到swarm中的单个副本

时间:2019-07-15 22:14:50

标签: docker swarm

我需要部署一个容器,该容器接收一个特定的正在运行的参数,例如一个目标ip,以对其运行bash脚本。

我可以在单个docker主机上启动并运行该容器,并且一切正常。

由于脚本的负载相当大,并且需要花费一些时间来执行,因此安排在5个不同的主机(每个主机具有不同的目标ip)上安排50个副本将很麻烦,因此docker swarm似乎简单的选择

说脚本是

test.sh

#!/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"

Dockerfile

 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

zombie.sh

while true; do 
   if sintax for checking if a variable exists
     /test.sh
     exit 0
   else
    sleep 5s
   fi
 done

我如何使用群体来实现这一点以利用工作量分配?

0 个答案:

没有答案