mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-11-28 01:08:53 +00:00
Compare commits
2 Commits
3ccba8afb4
...
dd6b022429
Author | SHA1 | Date | |
---|---|---|---|
|
dd6b022429 | ||
|
46020ff786 |
@ -40,7 +40,7 @@ CMD service nginx start
|
|||||||
|
|
||||||
对于容器而言,其启动程序就是容器应用进程,容器就是为了主进程而存在的,主进程退出,容器就失去了存在的意义,从而退出,其它辅助进程不是它需要关心的东西。
|
对于容器而言,其启动程序就是容器应用进程,容器就是为了主进程而存在的,主进程退出,容器就失去了存在的意义,从而退出,其它辅助进程不是它需要关心的东西。
|
||||||
|
|
||||||
而使用 `service nginx start` 命令,则是希望 upstart 来以后台守护进程形式启动 `nginx` 服务。而刚才说了 `CMD service nginx start` 会被理解为 `CMD [ "sh", "-c", "service nginx start"]`,因此主进程实际上是 `sh`。那么当 `service nginx start` 命令结束后,`sh` 也就结束了,`sh` 作为主进程退出了,自然就会令容器退出。
|
而使用 `service nginx start` 命令,则是希望 init 系统以后台守护进程的形式启动 nginx 服务。而刚才说了 `CMD service nginx start` 会被理解为 `CMD [ "sh", "-c", "service nginx start"]`,因此主进程实际上是 `sh`。那么当 `service nginx start` 命令结束后,`sh` 也就结束了,`sh` 作为主进程退出了,自然就会令容器退出。
|
||||||
|
|
||||||
正确的做法是直接执行 `nginx` 可执行文件,并且要求以前台形式运行。比如:
|
正确的做法是直接执行 `nginx` 可执行文件,并且要求以前台形式运行。比如:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user