nginx docker官方鏡像添加自定義命令自動(dòng)退出方式
nginx docker官方鏡像添加自定義啟動(dòng)命令自動(dòng)退出
今天在啟動(dòng)nginx官方鏡像的時(shí)候想在啟動(dòng)后執(zhí)行一些CMD命令,但發(fā)現(xiàn)每次執(zhí)行完CMD命令后鏡像會(huì)自動(dòng)退出,在網(wǎng)上查找后發(fā)現(xiàn):
? If you add a custom CMD in the Dockerfile, be sure to include -g daemon off; in the CMD in order for nginx to stay in the foreground, so that Docker can track the process properly (otherwise your container will stop immediately after starting)!
譯文:
? 如果你再Dockerfile中添加了一條自定義的CMD命令,為了使nginx保持在前臺(tái)運(yùn)行請(qǐng)確定CMD命令中包含參數(shù) -g daemon off; ,這樣Docker才能正確的跟蹤進(jìn)程(否則你的容器回在啟動(dòng)后立即停止)
再?gòu)膁ocker的運(yùn)行機(jī)制來說明:
docker判斷容器是否運(yùn)行的依據(jù)是容器內(nèi)pid(進(jìn)程號(hào))為1的進(jìn)程是否結(jié)束,一旦pid=1的進(jìn)程結(jié)束后容器也會(huì)隨之退出。
在未添加自定義的CMD命令時(shí),nginx容器中pid=1的進(jìn)程是nginx,而添加了CMD命令后,這條自定義的CMD命令的pid變成了1,而nginx進(jìn)程轉(zhuǎn)為守護(hù)線程的方式來執(zhí)行,當(dāng)自定義的CMD命令執(zhí)行結(jié)束后,容器便會(huì)隨之退出!
解決方法
添加全局參數(shù) -g ‘daemon off’;
解釋:
設(shè)置nginx不以守護(hù)線程的方式運(yùn)行,這樣nginx始終保持進(jìn)程號(hào)pid=1,這樣容器就會(huì)隨著nginx一直運(yùn)行下去。
示例:
- dockerfile
FROM nginx:latest CMD echo "hello" && exec nginx -g 'daemon off;'
- 命令行
docker run -itd nginx:latest /bin/bash echo "hello" && exec nginx -g 'daemon of f;'
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx與后臺(tái)應(yīng)用端口沖突的解決方案
在部署Web應(yīng)用時(shí),Nginx和后臺(tái)應(yīng)用(如Node.js、Python Flask、Java Spring Boot等)常常需要同時(shí)運(yùn)行在一臺(tái)服務(wù)器上,然而,當(dāng)它們需要監(jiān)聽同一個(gè)端口(如8000)時(shí),就會(huì)出現(xiàn)端口沖突的問題,本文將詳細(xì)介紹幾種解決Nginx與后臺(tái)應(yīng)用端口沖突的方法2025-02-02
Windows環(huán)境下Nginx?服務(wù)器?SSL?證書安裝部署操作過程
這篇文章主要介紹了Windows環(huán)境下Nginx?服務(wù)器?SSL?證書安裝部署,指導(dǎo)您如何在Windows Nginx 服務(wù)器中安裝 SSL 證書,本文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10
nginx啟動(dòng)后,訪問報(bào)403錯(cuò)誤問題及解決
Nginx出現(xiàn)Permission denied錯(cuò)誤可能由權(quán)限或文件路徑問題導(dǎo)致,檢查日志發(fā)現(xiàn)啟動(dòng)用戶為root,需修改nginx.conf的user指令與啟動(dòng)用戶一致,并重啟服務(wù),同時(shí)需確認(rèn)文件路徑是否正確2025-09-09
nginx實(shí)現(xiàn)動(dòng)靜分離的案例詳解
nginx 和 Tomcat 是兩個(gè)不同的服務(wù)器軟件,在分離部署方面有著各自的優(yōu)勢(shì)和適用場(chǎng)景,一般來說,Nginx 適合作為反向代理和負(fù)載均衡服務(wù)器,用于處理靜態(tài)文件和高并發(fā)請(qǐng)求,本文將大家介紹一下nginx實(shí)現(xiàn)動(dòng)靜分離的案例,需要的朋友可以參考下2023-08-08
Nginx 1.28.0 源碼編譯安裝與自定義網(wǎng)頁部署詳細(xì)指南
本文介紹了Nginx1.28.0的安裝過程,提供了自定義HTML文件部署步驟、安裝后核心目錄說明、常用管理命令、部署前端項(xiàng)目示例等內(nèi)容,感興趣的朋友跟隨小編一起看看吧2026-05-05
nginx反向代理https內(nèi)部定向到http報(bào)302的問題及解決
這篇文章主要介紹了nginx反向代理https內(nèi)部定向到http報(bào)302的問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
使用Lvs+Nginx集群搭建高并發(fā)架構(gòu)的實(shí)現(xiàn)示例
本文主要介紹了使用Lvs+Nginx集群搭建高并發(fā)架構(gòu)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12

