Why docker container exits immediately

后端 未结 15 2373
温柔的废话
温柔的废话 2020-11-22 13:42

I run a container in the background using

 docker run -d --name hadoop h_Service

it exits quickly. But if I run in the foreground, it works

15条回答
  •  天涯浪人
    2020-11-22 14:42

    Coming from duplicates, I don't see any answer here which addresses the very common antipattern of running your main workload as a background job, and then wondering why Docker exits.

    In simple terms, if you have

    my-main-thing &
    

    then either take out the & to run the job in the foreground, or add

    wait
    

    at the end of the script to make it wait for all background jobs.

    It will then still exit if the main workload exits, so maybe run this in a while true loop to force it to restart forever:

    while true; do
        my-main-thing &
        other things which need to happen while the main workload runs in the background
        maybe if you have such things
        wait
    done
    

    (Notice also how to write while true. It's common to see silly things like while [ true ] or while [ 1 ] which coincidentally happen to work, but don't mean what the author probably imagined they ought to mean.)

提交回复
热议问题