我有一個接受作爲參數的腳本;那麼我的腳本必須根據這個參數創建一個具有多個端口映射的docker容器;例如,如果我跑。 /myscript.sh 10
,myscript.sh必須創建一個具有10個端口映射的Docker容器。取決於腳本參數的Bash多端口映射
這是我的myscript.sh
#!/bin/bash
NCACHES=$1
PORT_BASE=80
docker run -idt --name CONTAINER then..?
如果參數值,例如,如圖5所示,我願意的MyScript創建具有端口映射80,81,82,83,84的容器。我怎麼能在bash腳本中管理這個條件?
參數值= 5時,預計會有:docker run -idt --name MYNAME -p 80:80 -p 81:81 -p 82:82 -p 83:83 -p 84:84
編輯:我已經盡我的腳本:
#!/bin/bash
echo $1
docker run -idt --name CONTAINER `for x in {80..$((80 + ${1}))}; do printf "-p ${x}:${x} "; done` pier92/balancer:latest
但這是輸出:
./mapping.sh 5
5
./mapping.sh: riga 9: printf: -p: opzione non valida
printf: uso: printf [-v var] formato [argomenti]
75899b1ec4edab51530ad8c33e955a31a45fb946ecc6eb2fa3f1ba5b5537064a
[email protected]:~/Scrivania/setup-arch/webapp$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
75899b1ec4ed pier92/balancer:latest "nginx -g 'daemon ..." 7 seconds ago Up 4 seconds 80/tcp, 443/tcp CONTAINER
只有映射端口80。
你如何將這些端口映射傳遞給'docker'? – Inian
與參數值= 5,它應該有:碼頭運行-idt - 名稱MYNAME -p 80:80 -p 81:81 -p 82:82 -p 83:83 -p 84:84 – pier92
我認爲是什麼你現在問的是很容易改變一下代碼,你應該自己嘗試一下,這樣你會學到更多! – criw