久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

解決docker run 或者 docker restart 啟動鏡像就自動退出

瀏覽:3日期:2024-11-12 18:47:27

執(zhí)行命令:docker run --name centos8 -d centos /bin/bash,通過docker ps查看正在運(yùn)行中容器,找不到centos8。

通過docker ps -a查看發(fā)現(xiàn),centos8容器已經(jīng)處于停止?fàn)顟B(tài)了

[root@MiWiFi-R4A-srv server]$ docker run --name centos8 -d centos /bin/basha770630ca865b3c3346a321a383f302ed22af9281be8482f4f4debc59218d0d1[root@MiWiFi-R4A-srv server]$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES[root@MiWiFi-R4A-srv server]$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESa770630ca865 centos '/bin/bash' 37 seconds ago Exited (0) 35 seconds ago centos8

為什么退出?

這是因?yàn)閐ocker后臺運(yùn)行,必須有一個前臺進(jìn)程。docker運(yùn)行的命令如果不是那些一直掛起的命令(e.g. top,ping),就是會自動退出的。而上面的代碼中-d centos就是需要執(zhí)行的指定的命令。命令如果執(zhí)行完畢了或者應(yīng)用終結(jié)時,容器會自動停止。

解決方法

以前臺進(jìn)程的形式運(yùn)行

將運(yùn)行的程序以前臺進(jìn)程的形式運(yùn)行,如果容器需要同時啟動多個進(jìn)程,那么也只需要將其中一個掛起到前臺即可。

比如上面所說的 centos 容器,只需要將啟動指令修改為交互方式啟動:

docker run --name centos8 -it centos /bin/bash

又或者是Web容器:

service php5-fpm start && nginx -g 'daemon off;'

取巧方式

添加類似于 tail top 這種可以前臺運(yùn)行的程序,持續(xù)輸出log文件即可。

service nginx start && service php5-fpm start && tail -f /var/log/nginx/error.log

再以上面所說的 web 容器為例,可以寫成:

service nginx start && service php5-fpm start && tail -f /var/log/nginx/error.log

自己寫腳本

在啟動centos/ubuntu容器時,可以做一個手腳:做一個死循環(huán),持續(xù)輸出任意,這樣容器不會認(rèn)為沒事可做而自殺了。

docker run -d centos /bin/bash -c 'while true; do echo hello world; sleep 1; done'

補(bǔ)充知識:docker中啟動容器時CMD調(diào)用的sh腳本中if命令報未預(yù)期的符號 if[[的解決辦法

最近通過Dockerfile編寫鏡像,CMD中調(diào)用的是sh腳本(start.sh)進(jìn)行啟動容器,通過docker run啟動時,啟動不成功,進(jìn)行docker logs 容器ID,發(fā)現(xiàn)報錯為:未預(yù)期的符號 if [[

我直接在外部linux系統(tǒng)調(diào)用執(zhí)行start.sh是成功的,通過docker exec 進(jìn)入容器,在容中調(diào)用start.sh也未報錯,命令中需要啟動的程序都成功啟動。腳本直接執(zhí)行沒問題,通過docker run卻報錯,百思不得其解。

start.sh中報錯代碼段如下

if [[ -e /home/dc/testnn-aaa.zip ]];then rm -rf /home/testnn-aaa unzip -q -o -d /home testnn-aaa.zip echo 'unzip zip finished' else echo 'dc zip not exist'fi

經(jīng)過查閱比較,因?yàn)槲业膕tart.sh在報錯語句之前也有if語句,但是沒報錯,發(fā)現(xiàn)兩處區(qū)別為第一處if使用的是單[],將代碼改為[],則成功,修改如下:

if [ -e /home/dc/testnn-aaa.zip ];then

以上這篇解決docker run 或者 docker restart 啟動鏡像就自動退出就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Docker
相關(guān)文章:
主站蜘蛛池模板: 日韩精品中文字幕在线播放 | 天天人人精品 | 日韩不卡一区二区三区 | youjizz国产| 成人精品久久久 | 91精品国产欧美一区二区 | 免费在线观看毛片网站 | 香蕉综合久久 | 香蕉大人久久国产成人av | 亚洲精品视频在线观看免费 | 国产一区精品视频 | 久草新 | av网站观看 | 成人在线播放网站 | 色综合久久一区二区三区 | 伊人免费视频二 | 凹凸日日摸日日碰夜夜爽孕妇 | 日韩三级电影在线免费观看 | 亚洲午夜性视频 | 欧美日韩中文字幕在线 | 1区在线 | 在线色网站 | 免费国产一区二区 | 亚洲视频自拍 | 日韩精品一区二区三区老鸭窝 | 日韩欧美精品一区 | 日本三级在线视频 | 91日韩精品一区二区三区 | 成人午夜精品一区二区三区 | 色婷婷网 | 欧美色图亚洲自拍 | 91精品国产91综合久久蜜臀 | 精品无码久久久久久国产 | 欧美free性| 亚洲日韩欧美一区二区在线 | 国产a级毛片 | 欧美五月婷婷 | 中文字幕成人网 | 色婷婷综合久久久中文字幕 | 美女久久久 | www亚洲成人 |