欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2020年11月21日 14:12:44   作者:程序員阿廣  
這篇文章主要介紹了解決docker run 或者 docker restart 啟動鏡像就自動退出的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

執(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/bash
a770630ca865b3c3346a321a383f302ed22af9281be8482f4f4debc59218d0d1
[root@MiWiFi-R4A-srv server]$ docker ps
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES
[root@MiWiFi-R4A-srv server]$ docker ps -a
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS      PORTS    NAMES
a770630ca865  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命令報(bào)未預(yù)期的符號 if[[的解決辦法

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

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

start.sh中報(bào)錯代碼段如下

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在報(bào)錯語句之前也有if語句,但是沒報(bào)錯,發(fā)現(xiàn)兩處區(qū)別為第一處if使用的是單[],將代碼改為[],則成功,修改如下:

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

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

相關(guān)文章

  • 遷移變更Docker默認(rèn)數(shù)據(jù)存儲目錄的步驟詳解

    遷移變更Docker默認(rèn)數(shù)據(jù)存儲目錄的步驟詳解

    Docker安裝的默認(rèn)數(shù)據(jù)目錄為/var/lib/docker,但是如果/目錄掛載的磁盤空間不夠,就需要遷移docker數(shù)據(jù)到其他目錄,接下來本就給大家介紹遷移變更Docker默認(rèn)數(shù)據(jù)存儲目錄的操作步驟,需要的朋友可以參考下
    2023-12-12
  • docker中nacos無法訪問的問題解決

    docker中nacos無法訪問的問題解決

    本文主要介紹了docker中nacos無法訪問的問題解決,可能是檢查端口映射設(shè)置、防火墻設(shè)置以及Nacos容器的運(yùn)行狀態(tài)等方面,本文就來實(shí)現(xiàn)docker中nacos無法訪問的問題解決,感興趣的可以了解一下
    2024-02-02
  • 教你使用Jenkins集成Harbor自動發(fā)布鏡像

    教你使用Jenkins集成Harbor自動發(fā)布鏡像

    這篇文章主要介紹了Jenkins?集成?Harbor?自動發(fā)布鏡像,主要包括Jenkins?腳本式發(fā)布鏡像及Jenkins?插件式發(fā)布鏡像的詳細(xì)過程,本文結(jié)合圖文實(shí)例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 如何為Go程序創(chuàng)建一個最小的Docker Image詳解

    如何為Go程序創(chuàng)建一個最小的Docker Image詳解

    這篇文章主要給大家介紹了關(guān)于如何為Go程序創(chuàng)建一個最小的Docker Image的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • docker部署apollo詳細(xì)教程

    docker部署apollo詳細(xì)教程

    這篇文章主要介紹了docker部署apollo詳細(xì)教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 什么是Docker? Docker入門教程

    什么是Docker? Docker入門教程

    本文主要涉及Docker的基礎(chǔ)知識:Docker的概述、docker容器以及如何安裝使用Docker。希望大家能夠喜歡
    2017-03-03
  • openwrt安裝docker并啟動的操作方法

    openwrt安裝docker并啟動的操作方法

    這篇文章主要介紹了openwrt安裝docker并啟動的操作方法,首先需要大家在軟件包中下載docker和dockerd,然后在建立軟連接,在系統(tǒng)加載時啟動docker服務(wù),感興趣的朋友一起看看吧
    2022-03-03
  • Docker鏡像+nginx 部署 vue 項(xiàng)目的方法

    Docker鏡像+nginx 部署 vue 項(xiàng)目的方法

    這篇文章主要介紹了Docker鏡像+nginx 部署 vue 項(xiàng)目的方法,幫助大家更好的使用docke鏡像,感興趣的朋友可以了解下
    2020-10-10
  • Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn)

    Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn)

    本文主要介紹了Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn),主要包括編寫Dockerfile、構(gòu)建鏡像、測試鏡像等操作,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • mac通過docker一鍵部署Nexus3的過程記錄

    mac通過docker一鍵部署Nexus3的過程記錄

    編寫一些簡易的 shell 腳本幫我們快速的搭建服務(wù)器,猿們只要按著套路“一步一步”的操作,基本上都可以快速部署服務(wù),這篇文章主要介紹了mac通過docker一鍵部署Nexus3及安裝步驟,需要的朋友可以參考下
    2022-10-10

最新評論