2019-07 <Docker容器> 第四、八章 容器的創(chuàng)建、啟動(dòng)、停止、重啟和清理

鏡像是靜止的。

容器是動(dòng)態(tài)的,狀態(tài)分為:創(chuàng)建、運(yùn)行、退出、掛起、被刪除

????運(yùn)行:?

? ? ? ? ? ? A.?新的容器:? docker run? ?[-i/-d]? <鏡像名>? [options]? ? ? ? ? ? --> -i 交互模式,常用于啟動(dòng)bash(-t 選項(xiàng)啟動(dòng)新terminal;-a選項(xiàng)是連接到當(dāng)前會(huì)話的terminal)進(jìn)入容器,排查、改變?nèi)萜鳎ㄟM(jìn)而commit新鏡像)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --> -d 服務(wù)模式,daemon

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --> options通常是:容器資源定義和限制:? ? --memory=xx --memory-swap=xx(默認(rèn)swap是2倍memory) --cpu-shares=xx(上限也是默認(rèn)) --cpuset-cups=xx(限制住分配哪個(gè)cpu核)

? ? ? ? ? ? B.?之前退出的容器:docker start [-i/-d] <容器id/容器名>? [options]? ? ? ? --> 取得上次退出時(shí)的狀態(tài)、選項(xiàng):運(yùn)行命令、端口、掛載目錄

? ? ? ? ? ? *?進(jìn)入正在運(yùn)行的容器:docker exec -it?<容器id/容器名> /bin/bash????

? ? 退出:? ?運(yùn)行狀態(tài)被保存,包括上次啟動(dòng)運(yùn)行的命令參數(shù)

? ? ? ? ? ? A. docker? kill?<容器id/容器名>

? ? ? ? ? ? ? ? ? ? kill操作一定能stop掉容器,但可能不能在start這個(gè)容器了。這時(shí),兩個(gè)方案重起容器:

? ? ? ? ? ? ? ? ? ? ????1. 之前容器沒有修改過:docker run <鏡像>

? ? ? ? ? ? ? ? ? ? ????2. 之前容器有重要修改:

????????????????????????????docker ps -a ????????-->得到容器id

? ? ? ? ? ? ? ? ? ? ? ? ? ? docker export <容器id> > tarball

? ? ? ? ? ? ? ? ? ? ? ? ? ? 解壓tarball,修復(fù)issue,重新打包

? ? ? ? ? ? ? ? ? ? ? ? ? ? cat tarball | docker import - <image name>

? ? ? ? ? ? ? ? ? ? ? ? ? ? docker run?<image name>

? ? ? ? ? ? ? ? ? ? 有用的kill信號(hào):

? ? ? ? ? ? ? ? ? ? ? ? docker kill -s SIGHUP <容器id/容器名>? ? ? ? -->? 容器內(nèi)的服務(wù)會(huì)reload配置文件,沒有downtime

? ??????????????????????docker kill -s SIGINT <容器id/容器名>? ? ? ? ? -->? 向容器容器的前臺(tái)進(jìn)程發(fā)出鍵盤中斷 Ctrl+C

? ? ? ? ? ? B. docker stop?<容器id/容器名>

? ? ? ? ? ? C. 容器完成了命令/任何,自行退出

? ? ? ? ? ? * 察看容器退出碼: docker wait?<容器id/容器名>

? ? 掛起:? ?掛起容器內(nèi)的所有進(jìn)程,基于cgroups freeze特性而實(shí)現(xiàn)的

? ? ? ? ? ? A. docker pause?<容器id/容器名>????????

? ? ? ? ? ? A-1.?docker unpause?<容器id/容器名>? ? ? ? ? ? --> resume容器內(nèi)的進(jìn)程

? ? 刪除

? ? ? ? ? ? A.?docker rm?<容器id/容器名>? ? ? ? ? ? -->?如果在docker run/start時(shí)加上 --rm 選項(xiàng),那么在容器退出時(shí),容器也會(huì)被刪除

? ? ? ? ? ? B.?docker rmi?<容器id/容器名>? ? ? ? ? ? --> 連鏡像一起刪除。

????創(chuàng)建:? ? 相當(dāng)于docker run -d?<鏡像名>? [options],? 但容器內(nèi)進(jìn)程沒起來,容器就stop的效果

? ? ? ? ? ? docker create?<鏡像名>? [options]?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容