日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

docker 容器状态 restarting_20分钟极简入门Docker

發布時間:2025/6/15 10 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker 容器状态 restarting_20分钟极简入门Docker 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有錯誤請指出~


什么是Docker

首先來介紹一下什么是Docker,Docker是早于2013年發布的開源項目,它借助操作系統的虛擬化技術來實現應用間的資源隔離,從而應用能更加快速方便地打包和部署在任何地方。根據官網描述,Docker是一個借助容器進行開發,部署和運行應用的工具,通俗來說,Docker容器好比一個集裝箱一樣,里面存放了應用所需要的文件和依賴,這種把應用標準化的過程被叫做為“容器化”。

Docker適合做什么

對于開發人員來說,容器技術為應用的部署提供了沙盒環境,開發者可以在獨立的容器運行和管理應用程序進程,Docker提供的抽象層使得開發人員之間可以保持開發環境相對的一致,因此Docker適合用于應用隔離,搭建沙箱環境,此外,由于Docker容器的輕量化,它也被適用于進行持續集成和持續部署。

Container VS VM

人們經常用虛擬機和容器來做比較,那么它們兩之間有什么區別呢?其實它們最核心的區別在于虛擬化資源的層面不一樣,虛擬機是在硬件層之上實現虛擬化的,而容器則直接在操作系統之上實現虛擬化,從圖中可以看出,每個虛擬機都需要在一個Guest OS之上,而容器則可以都處在同一個宿主機之上。

因為容器沒有虛擬機造成的額外損耗,所以與虛擬機對比,容器不僅運行效率更高,而且部署速度也更快。

Docker Engine

Docker Engine是用于運行和編排容器的基礎設施工具,我們平時說到的Docker大多數指的是Docker Engine,也就是在命令行和Docker進行交互的時候打交道的后臺進程。

這是Docker Engine目前的架構,Docker客戶端通過REST API與Docker Daemon來進行交互,Daemon把命令下發給containerd,containerd負責容器的生命周期管理以及鏡像管理等,而runc負責創建容器。

Docker首次發布時,Docker Engine由兩個核心組件構成:LXC和Docker Daemon。Docker Daemon是單一的二進制文件,包含諸如 Docker客戶端、Docker API、容器運行時、鏡像構建等。LXC提供了對Namespace(資源隔離)和CGroup(資源限制)等基礎工具的操作能力,它們是基于Linux內核的容器虛擬化技術。

安裝Docker

安裝好Docker后,可以執行兩條命令查看Docker環境以及版本信息:

  • docker version
  • docker info

Docker鏡像

如果說Docker容器本質上是一個運行的進程以及它需要的一些依賴,而Docker鏡像則是定義容器的一個"模版",容器則是鏡像運行的一個實例。鏡像是一個打包好的文件,里面包含了應用程序運行所需的所有庫、配置和依賴。

Docker鏡像結構

所有的Docker鏡像都起始于一個基礎鏡像層,當進行修改或增加新的內容時,就會在當前鏡像層之上,創建新的鏡像層。以Dockerfile為例,每一行指令都產生一個新層。

鏡像由一個或多個只讀的鏡像層構建而成,每個鏡像層擁有獨立的哈希值,Docker在拉取或推送鏡像時,會判斷哪幾層在本地或遠端已存在,避免不必要的操作。

Docker鏡像命令

我們可以通過下面這些命令進行一些Docker鏡像相關的基本操作。

Docker容器

容器是鏡像的一個運行的實例,用戶可以從單個鏡像上啟動一個或多個容器。

Docker容器的生命周期

容器在創建時進入Created狀態,運行后進入Running狀態,接著會進入到Pause狀態或Exited狀態,對已經退出的容器執行重啟操作會使容器進入Restarting狀態,隨后轉為Running狀態。

Docker容器操作

創建一個Docker容器https://www.zhihu.com/video/1166455714251264000

Dockerfile

Dockerfile是一個用以構建鏡像的文本文件,它包括了一系列的執行用來表示當前應用的描述、依賴以及該如何運行這個應用,Docker Engine通過解析Dockerfile里的指令,來構建一個Docker鏡像。

執行docker build命令會從頂層開始解析Dockerfile中的指令并逐行執行。而對每一條指令,Docker都會檢查緩存中是否已經有與該指令對應的鏡像層。

編寫一個Dockerfilehttps://www.zhihu.com/video/1166455944463732736

多階段構建

當Dockerfile中包含多個FROM語句時,觸發多階段構建。使用多階段構建可以文件從另一個階段復制到另一個階段,生成的鏡像將會是最后一個階段構建的結果。

這個功能在某些情況下會十分有用,比如我們在編譯應用時需要用到許多依賴,但想要保持鏡像盡可能地小,這時候就可以通過多階段構建來將編譯環境和運行環境分離,在最終生成的鏡像中只保留編譯好的可執行文件。

Dockerfile多階段構建https://www.zhihu.com/video/1166456122667143168

應用容器化

這時候歸納一下應用容器化的過程:

  • 首先獲取和編寫應用代碼
  • 為應用編寫Dockerfile
  • 通過Dockerfile來構建應用的鏡像
  • 將鏡像交付到物理機和云端
  • 最終測試和運行容器化應用。
  • Docker Registry

    Docker Registry是鏡像存儲和分發的倉庫,以完成鏡像的搜索、拉取和推送等操作。

    推送一個鏡像:

    • docker push ubuntu(http://docker.io)
    • docker push myregistrydomain:port/foo/bar(myregistrydomain:port)

    拉取一個鏡像:

    • docker pull ubuntu(http://docker.io)
    • docker pull myregistrydomain:port/foo/bar(myregistrydomain:port)

    Docker數據管理

    下面介紹一下Docker是怎么管理和存儲數據的,Docker提供了3種方法將數據從宿主機掛載到容器:volumes,bind mounts和tmpfs mounts。其中volume適合在不同的容器中共享數據和數據遷移,bind mount適合宿主機與容器之間共享配置和代碼,tmpfs適合不需要持久化數據的場景。

    Docker網絡

    Docker基于CNM實現了網絡模型,CNM模型由三個部分組成:Sandbox,Endpoint,Network。

    Docker內置了以下幾種網絡驅動,其中bridge橋接網絡是Docker默認的網絡驅動,在這種模式下,連接到同一個網橋的容器會使用同一個DNS解析服務,容器間可以使用這個解析服務來相互通信,而overlay是swarm模式下默認的網絡驅動。

    Docker DNShttps://www.zhihu.com/video/1166460676783669248

    Docker Machine

    Docker Machine是一個用來在虛擬機安裝Docker Engine的工具,以及通過命令行來管理和登錄這些主機。

    Docker Compose

    Docker Compose是一個定義和運行多容器應用的工具,通過編寫Compose文件來定義和配置應用,只需要用docker-compose一條命令就可以一次把所有定義好的服務啟動起來。

    Docker Compose部署應用https://www.zhihu.com/video/1166457477158903808

    Docker Swarm

    Docker Swarm是Docker原生的集群管理和調度工具,它把多個Docker主機抽象成單個虛擬的系統,開發者方便地可以通過Docker Swarm在多個主機上來調度和部署Docker容器。

    在Swarm中有幾個概念,Node代表著Swarm集群中的一個Docker主機,其中每個主機可以是Manager或者Worker兩個角色,他們分別代表管理節點和工作節點。Task可以理解為一個Docker容器以及其運行的命令,Service是一組Task的集合與定義,即運行在Node上的服務。

    Docker Swarm提供了多種調度策略,來按需選擇將容器分配到不同的節點上。

    使用Swarm部署應用https://www.zhihu.com/video/1166463996525010944

    好了,希望看到這后你對Docker可以有一個了解。

    總結

    以上是生活随笔為你收集整理的docker 容器状态 restarting_20分钟极简入门Docker的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。