dockerfile - 為什么docker容器啟動(dòng)不了?
問(wèn)題描述
sudo docker run -d centos /bin/bash創(chuàng)建容器之后,使用docker ps -a 發(fā)現(xiàn)容器已經(jīng)停止,再使用docker start id 啟動(dòng)容器之后,觀察ps -a 的操作時(shí)間,發(fā)現(xiàn)容器其實(shí)已經(jīng)啟動(dòng)過(guò),但是馬上就停止了。這是什么原因?
補(bǔ)充:嘗試三種鏡像的啟動(dòng),centos,mysql,nginx,結(jié)果只有nginx能啟動(dòng)。其他兩個(gè)怎么也啟動(dòng)不了。
補(bǔ)充二:問(wèn)題基本已經(jīng)找到了,原因就是:Docker容器后臺(tái)運(yùn)行,就必須有一個(gè)前臺(tái)進(jìn)程。主線程結(jié)束,容器會(huì)退出。sudo docker run -d centos 改成 sudo docker -dit centos 就行了。總感覺(jué)有點(diǎn)別扭,大家還有更好的解決辦法嗎?望大家指教。。。
問(wèn)題解答
回答1:sudo docker run -t -i centos /bin/bash
回答2:通過(guò) docker logs 容器ID 可以查看到容器主程序的輸出,嘗試通過(guò)這個(gè)分析一下原因。
另外系統(tǒng)鏡像默認(rèn)啟動(dòng)是bash,如果沒(méi)有銜接輸入流,本身就會(huì)馬上結(jié)束。
相關(guān)文章:
1. MySQL數(shù)據(jù)庫(kù)中文亂碼的原因2. docker api 開(kāi)發(fā)的端口怎么獲取?3. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問(wèn)題 麻煩幫我看一下4. angular.js - 關(guān)于$apply()5. docker-compose 為何找不到配置文件?6. angular.js - Ionic 集成crosswalk后生成的apk在android4.4.2上安裝失敗???7. css - C#與java開(kāi)發(fā)Windows程序哪個(gè)好?8. mysql - 新浪微博中的關(guān)注功能是如何設(shè)計(jì)表結(jié)構(gòu)的?9. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問(wèn)題。10. Angular.js 無(wú)法設(shè)置Authorization頭,該怎么解決?
