このスクリプトの仕組み:
#!/bin/bash
for i in {1..10}
do echo “yes $i”
done
ただし、複数のDockerコンテナを起動しようとすると、最初のコンテナのみが起動して終了します。
docker_run.sh
#!/bin/bash
for i in {1..10}
do exec docker run —name docker-nginx$i -P -d nginx
sleep 3
done
sleep 3
時間を与えるために追加されました。これが重要かどうかはわかりません。もちろん、スクリプトをsudo
実行するには権限が必要です。
答え1
多くのDockerマシンを実行するには、スクリプトは次のようになります。
#!/bin/bash
for i in {1..10}
do docker run —name docker-nginx$i -P -d nginx
sleep 3
done
exec
この場合は使用しないでください。exec
変える現在のプロセス(スクリプト)とその引数()を実行して作成されたプロセスdocker ...
。これがスクリプトが最初の反復を通過できない理由です。