鏡像是靜止的。
容器是動(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]?