亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker | Docker技術基礎梳理(三) - 容器生命周期管理

發布時間:2020-08-14 10:12:38 來源:ITPUB博客 閱讀:205 作者:咸魚普拉思 欄目:云計算

Docker | Docker技術基礎梳理(三) - 容器生命周期管理

什么是容器?

容器(Container):容器是一種輕量級、可移植、并將應用程序進行的打包的技術,使應用程序可以在幾乎任何地方以相同的方式運行,Docker將鏡像文件運行起來后,產生的對象就是容器。容器相當于是鏡像運行起來的一個實例且容器具備一定的生命周期。

Docker容器和虛擬機的區別

相同點:

  • 容器和虛擬機一樣,都會對物理硬件資源進行共享使用。

  • 容器和虛擬機的生命周期比較相似(創建、運行、暫停、關閉等等)。

  • 容器中或虛擬機中都可以安裝各種應用,如redismysql、nginx等。也就是說,在容器中的操作,如同在一個虛擬機(操作系統)中操作一樣。

  • 同虛擬機一樣,容器創建后,會存儲在宿主機上:linux上位于/var/lib/docker/containers下

不同點:

  • 虛擬機的創建、啟動和關閉都是基于一個完整的操作系統。一個虛擬機就是一個完整的操作系統。而容器直接運行在宿主機的內核上,其本質上以一系列進程的結合。

  • 容器是輕量級的,虛擬機是重量級的。首先容器不需要額外的資源來管理(不需要Hypervisor、Guest OS),虛擬機額外更多的性能消耗;其次創建、啟動或關閉容器,如同創建、啟動或者關閉進程那么輕松,而創建、啟動、關閉一個操作系統就沒那么方便了。
    也因此,意味著在給定的硬件上能運行更多數量的容器,甚至可以直接把Docker運行在虛擬機上。

容器的生命周期管理

先來看一張容器生命周期示意圖:

Docker | Docker技術基礎梳理(三) - 容器生命周期管理

下面咸魚會對容器管理的部分命令簡要學習:

容器創建(docker create)

命令格式:
docker create [參數] 鏡像名稱[容器執行命令][執行命令時需要提供的參數]

常用參數:

-t 分配一個虛擬終端
-i 提供一個模擬輸入,不提供則無法輸入默認命令
--name 為創建好的容器提供一個容器名,不提供的話隨機分配一個

Docker | Docker技術基礎梳理(三) - 容器生命周期管理
容器啟動(docker start)

啟動一個或多個容器。

命令格式:docker start [參數] 容器[容器..]

常用參數:

-a 將當前的輸入/輸出連接到容器
-i 將當前的輸入連接到容器上
容器創建并啟動(docker run)

命令格式:
docker run [參數] 鏡像 [容器執行命令] [執行命令提供的參數]

常用參數:

-t 分配一個虛擬終端
-i 保持輸入打開
-d 容器后臺運行,并打印容器id
--rm 容器結束后自動刪除容器

注意:因為我們學習docker主要還是為我們之后基于docker的Python開發服務的,所以關于docker run 以及 docker create/start 的一些參數的具體的區別就不在文章里贅述,有疑問的朋友可以參考官方文檔,當然也歡迎和咸魚在留言區討論,大家在這里簡單記兩個公式就好:

docker run = doker create + docker start -a
docker run -d = docker create + docker start

這里咸魚推薦大家使用docker run -dti來啟動所需容器。

容器暫停(docker pause/unpause)

docker pause 暫停一個或多個容器

docker unpause 啟動一個或多個暫停中的容器

命令格式:
docker pause/unpause 容器[容器..]

容器關閉(docker stop)

關閉一個或多個容器。

docker stop 關閉一個或多個容器

命令格式:
docker stop 容器[容器..]
常用參數:

-t 關閉前的等待時間,默認是10
容器終止(docker kill)

強制并立即關閉一個或多個處于暫停或運行狀態的容器。

命令格式:docker kill [參數] 容器[容器..]

常用參數:
-s 指定發給容器的關閉信號,默認為“kill”

容器重啟(docker restart)

重啟一個或多個處于運行狀態、暫停狀態、關閉狀態或創建狀態的容器。

命令格式:
docker restart [參數] 容器[容器..]

常用參數:

-t 關閉前的等待時間,默認是10秒,實則是關閉前的等待時間
容器刪除(docker container rm / docker rm )

命令格式:docker container rm [參數] 容器[容器..]

常用參數:

-f 強制刪除
-v 刪除容器的同時刪除容器的數據卷
docker kill 和 docker stop 區別

在上面關于docker容器生命周期管理中stop 和 kill 都是關閉容器,但是其中的kill是怎么實現強制殺死運行中的容器的呢?

這里需要說明下關linux下關于終止進程的信號:SIGTERM 和 SIGKILL

SIGKILL信號:無條件終止進程信號。進程接收到該信號會立即終止,不進行清理和暫存工作。該信號不能被忽略、處理和阻塞,它向系統管理員提供了可以殺死任何進程的方法。

SIGTERM信號:程序終結信號,可以由kill命令產生。與SIGKILL不同的是,SIGTERM信號可以被阻塞和終止,以便程序在退出前可以保存工作或清理臨時文件等。

docker stop 會先發出SIGTERM信號給進程,告訴進程即將會被關閉。在-t指定的等待時間過了之后,將會立即發出SIGKILL信號,直接關閉容器。

docker kill 直接發出SIGKILL信號關閉容器。但也可以通過-s參數修改發出的信號。

docker restart 中同樣可以設置 -t 等待時間,當等待時間過后會立刻發送SIGKILL信號,直接關閉容器。

因此會發現在docker stop的等待過程中,如果終止docker stop的執行,容器最終沒有被關閉。而docker kill幾乎是立刻發生,無法撤銷。

總結

關于docker容器的生命周期管理,咸魚踩坑之后認為需要加深理解的部分是關于docker run/start/create 以及 docker kill/stop/restart這兩大部分。

關于docker kill 和 docker stop 區別希望大家能著重看下上面docker kill/stop區別部分,至于docker run/start/create最好能夠動手敲一下感受下不同參數創建的后容器區別。

以上就是咸魚關于容器生命周期管理部分的踩坑總結。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天全县| 大石桥市| 鄢陵县| 兴宁市| 莱阳市| 江阴市| 玉林市| 波密县| 镇巴县| 岢岚县| 三原县| 当雄县| 五大连池市| 屏南县| 新绛县| 革吉县| 海盐县| 扬州市| 文昌市| 虎林市| 理塘县| 扬中市| 金乡县| 宜兴市| 万州区| 鄂州市| 广南县| 淳化县| 淮阳县| 南靖县| 曲沃县| 翼城县| 马关县| 大安市| 太康县| 民丰县| 洞口县| 马公市| 当涂县| 南郑县| 盖州市|