解決docker run后容器出現(xiàn)Exited (0)情況的問題
自己做了個centos7的openresty的Dockerfile,build之后
docker run -d -p 801:80 openresty:1.19 /usr/local/openresty/nginx/sbin/nginx
之后docker ps -a出現(xiàn)如下情況
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9dee2d04b3b5 openresty:1.19 "/usr/local/openrest…" 24 seconds ago Exited (0) 7 seconds ago gifted_bhabha 69846af3baa7 redis:latest "docker-entrypoint.s…" 24 minutes ago Up 24 minutes 0.0.0.0:6379->6379/tcp rds
openresty狀態(tài)顯示為Exited (0)
原因:
Docker的機(jī)制是讓容器后臺運(yùn)行,必須至少有一個前臺進(jìn)程,容器運(yùn)行的命令如果不是那些一直掛起的命令(比如運(yùn)行top,tail),會自動退出
解決:
可以使用包含 -g “daemon off;” 配置項的sh命令以前臺方式開啟nginx服務(wù)
因此啟動指令調(diào)整如下:
docker run -d -p 801:80 openresty:1.19 /usr/local/openresty/nginx/sbin/nginx -g "daemon off;"
再次docker ps -a看看效果
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0291303ca61b openresty:1.19 "/usr/local/openrest…" 29 seconds ago Up 28 seconds strange_curie 69846af3baa7 redis:latest "docker-entrypoint.s…" 26 minutes ago Up 26 minutes 0.0.0.0:6379->6379/tcp rds
補(bǔ)充:docker啟動時一直處于exited狀態(tài),解決fangfa
docker啟動時一直處于exited狀態(tài)
解決方法
步驟一、docker rm 容器id 將容器刪除
步驟二、docker rmi 鏡像id 將鏡像刪除(只有先刪除容器,才能刪除鏡像)
步驟三、docker build -t tomcat:centos . 重新創(chuàng)建容器
步驟四、docker run --privileged -it -d --name tomcat01 -p 1216:8080 tomcat:centos(加權(quán)限和)
指定一個偽終端)
錯誤導(dǎo)致原因1缺少權(quán)限 2沒有運(yùn)行終端
注:–privileged 加權(quán)限
-t 指定一個偽終端
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
兩種方式創(chuàng)建docker鏡像的啟動容器時區(qū)別介紹(總結(jié)篇)
這篇文章主要介紹了基于兩種創(chuàng)建docker鏡像的啟動容器時區(qū)別總結(jié),第一種凡是用docker commit生成的鏡像啟動的時候可以加載一個啟動自己應(yīng)用的腳本,第二種用Docfile文件生成的鏡像時,來啟動容器就不用再加這個腳本了,具體詳情一起通過本文學(xué)習(xí)吧2016-10-10使用Docker啟動mysql成功后,使用docker ps查不到的問題及解決
這篇文章主要介紹了使用Docker啟動mysql成功后,使用docker ps查不到的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12