在docker中,可以利用“Docker ps”命令檢測(cè)docker是否正常運(yùn)行,該命令用于列出容器,返回結(jié)果有內(nèi)容表示正在運(yùn)行,返回結(jié)果無內(nèi)容表示未運(yùn)行,語法為“docker ps | grep myimagename”。
本教程操作環(huán)境:linux7.3系統(tǒng)、docker-1.13.1版、Dell G3電腦。
怎樣檢測(cè)docker是否正常運(yùn)行
docker ps : 列出容器
語法
docker?ps?[OPTIONS]
OPTIONS說明:
-
-a :顯示所有的容器,包括未運(yùn)行的。
-
-f :根據(jù)條件過濾顯示的內(nèi)容。
-
–format :指定返回值的模板文件。
-
-l :顯示最近創(chuàng)建的容器。
-
-n :列出最近創(chuàng)建的n個(gè)容器。
-
–no-trunc :不截?cái)噍敵觥?/p>
-
-q :靜默模式,只顯示容器編號(hào)。
-
-s :顯示總的文件大小。
如何確定他們是否在跑步?我可以很容易地從終端使用docker ps,比如:
docker?ps?|?grep?myimagename
如果返回任何內(nèi)容,則圖像正在運(yùn)行。如果返回空字符串,則表示圖像未運(yùn)行。
但是,我不明白如何讓subprocess.Popen來處理這個(gè)問題-它需要一個(gè)參數(shù)列表所以類似于:
????p?=?subprocess.Popen(['docker',?'ps',?'|',?'grep',?'myimagename'],?stdout=subprocess.PIPE) ????print?p.stdout
無法工作,因?yàn)樗噲D獲取“docker ps”并使其成為“docker”和“ps”命令(docker不支持)。
似乎我也不能給它完整的命令,因?yàn)镻open試圖將整個(gè)第一個(gè)參數(shù)作為可執(zhí)行文件運(yùn)行,所以這失敗了:
????p?=?subprocess.Popen('docker?ps?|?grep?myimagename',?stdout=subprocess.PIPE) ????print?p.stdout
推薦學(xué)習(xí):《docker視頻教程》