Bash script to start Docker containers

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












0















This script works:



#!/bin/bash

for i in 1..10
do echo “yes $i”
done


But when attempting to start several Docker containers it only starts the first container and exits:



docker_run.sh



#!/bin/bash

for i in 1..10
do exec docker run —name docker-nginx$i -P -d nginx
sleep 3
done


The sleep 3 was added to give it time. Not sure if it matters. Of course the script has to run with sudo permissions.










share|improve this question



















  • 2





    Why do you use exec command? Try to do it running directly docker

    – Romeo Ninov
    Feb 14 at 19:33






  • 1





    Yeah that was it. Thanks.

    – justinnoor.io
    Feb 14 at 19:44















0















This script works:



#!/bin/bash

for i in 1..10
do echo “yes $i”
done


But when attempting to start several Docker containers it only starts the first container and exits:



docker_run.sh



#!/bin/bash

for i in 1..10
do exec docker run —name docker-nginx$i -P -d nginx
sleep 3
done


The sleep 3 was added to give it time. Not sure if it matters. Of course the script has to run with sudo permissions.










share|improve this question



















  • 2





    Why do you use exec command? Try to do it running directly docker

    – Romeo Ninov
    Feb 14 at 19:33






  • 1





    Yeah that was it. Thanks.

    – justinnoor.io
    Feb 14 at 19:44













0












0








0








This script works:



#!/bin/bash

for i in 1..10
do echo “yes $i”
done


But when attempting to start several Docker containers it only starts the first container and exits:



docker_run.sh



#!/bin/bash

for i in 1..10
do exec docker run —name docker-nginx$i -P -d nginx
sleep 3
done


The sleep 3 was added to give it time. Not sure if it matters. Of course the script has to run with sudo permissions.










share|improve this question
















This script works:



#!/bin/bash

for i in 1..10
do echo “yes $i”
done


But when attempting to start several Docker containers it only starts the first container and exits:



docker_run.sh



#!/bin/bash

for i in 1..10
do exec docker run —name docker-nginx$i -P -d nginx
sleep 3
done


The sleep 3 was added to give it time. Not sure if it matters. Of course the script has to run with sudo permissions.







linux bash docker






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Feb 14 at 19:33









Rui F Ribeiro

41.4k1481140




41.4k1481140










asked Feb 14 at 19:26









justinnoor.iojustinnoor.io

367319




367319







  • 2





    Why do you use exec command? Try to do it running directly docker

    – Romeo Ninov
    Feb 14 at 19:33






  • 1





    Yeah that was it. Thanks.

    – justinnoor.io
    Feb 14 at 19:44












  • 2





    Why do you use exec command? Try to do it running directly docker

    – Romeo Ninov
    Feb 14 at 19:33






  • 1





    Yeah that was it. Thanks.

    – justinnoor.io
    Feb 14 at 19:44







2




2





Why do you use exec command? Try to do it running directly docker

– Romeo Ninov
Feb 14 at 19:33





Why do you use exec command? Try to do it running directly docker

– Romeo Ninov
Feb 14 at 19:33




1




1





Yeah that was it. Thanks.

– justinnoor.io
Feb 14 at 19:44





Yeah that was it. Thanks.

– justinnoor.io
Feb 14 at 19:44










1 Answer
1






active

oldest

votes


















2














To run many docker machines your script should be like this:



#!/bin/bash

for i in 1..10
do docker run —name docker-nginx$i -P -d nginx
sleep 3
done


You should not use exec in this case as exec replaces the current process (your script) with the process resulting from executing its arguments (docker ...). This is why your script never gets past the first iteration.






share|improve this answer
























    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "106"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f500695%2fbash-script-to-start-docker-containers%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    2














    To run many docker machines your script should be like this:



    #!/bin/bash

    for i in 1..10
    do docker run —name docker-nginx$i -P -d nginx
    sleep 3
    done


    You should not use exec in this case as exec replaces the current process (your script) with the process resulting from executing its arguments (docker ...). This is why your script never gets past the first iteration.






    share|improve this answer





























      2














      To run many docker machines your script should be like this:



      #!/bin/bash

      for i in 1..10
      do docker run —name docker-nginx$i -P -d nginx
      sleep 3
      done


      You should not use exec in this case as exec replaces the current process (your script) with the process resulting from executing its arguments (docker ...). This is why your script never gets past the first iteration.






      share|improve this answer



























        2












        2








        2







        To run many docker machines your script should be like this:



        #!/bin/bash

        for i in 1..10
        do docker run —name docker-nginx$i -P -d nginx
        sleep 3
        done


        You should not use exec in this case as exec replaces the current process (your script) with the process resulting from executing its arguments (docker ...). This is why your script never gets past the first iteration.






        share|improve this answer















        To run many docker machines your script should be like this:



        #!/bin/bash

        for i in 1..10
        do docker run —name docker-nginx$i -P -d nginx
        sleep 3
        done


        You should not use exec in this case as exec replaces the current process (your script) with the process resulting from executing its arguments (docker ...). This is why your script never gets past the first iteration.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Feb 14 at 20:12









        Kusalananda

        135k17255418




        135k17255418










        answered Feb 14 at 19:48









        Romeo NinovRomeo Ninov

        6,58632028




        6,58632028



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Unix & Linux Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f500695%2fbash-script-to-start-docker-containers%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown






            Popular posts from this blog

            How to check contact read email or not when send email to Individual?

            Displaying single band from multi-band raster using QGIS

            How many registers does an x86_64 CPU actually have?