Docker常用知識

2021-09-26 07:45:44 字數 2079 閱讀 7454

docker 屬於 linux 容器的一種封裝,提供簡單易用的容器使用介面。它是目前最流行的 linux 容器解決方案。

docker 將應用程式與該程式的依賴,打包在乙個檔案裡面。執行這個檔案,就會生成乙個虛擬容器。程式在這個虛擬容器裡執行,就好像在真實的物理機上執行一樣。有了 docker,就不用擔心環境問題。

總體來說,docker 的介面相當簡單,使用者可以方便地建立和使用容器,把自己的應用放入容器。容器還可以進行版本管理、複製、分享、修改,就像管理普通的**一樣。

(1)資源占用多

虛擬機會獨佔一部分記憶體和硬碟空間。它執行的時候,其他程式就不能使用這些資源了。哪怕虛擬機器裡面的應用程式,真正使用的記憶體只有 1mb,虛擬機器依然需要幾百 mb 的記憶體才能執行。

(2)冗餘步驟多

虛擬機器是完整的作業系統,一些系統級別的操作步驟,往往無法跳過,比如使用者登入。

(3)啟動慢

啟動作業系統需要多久,啟動虛擬機器就需要多久。可能要等幾分鐘,應用程式才能真正執行。

docker容器可以有四種狀態:

執行已暫停

重新啟動

已退出我們可以通過執行命令來識別docker容器的狀態:

docker ps –a

一切都從dockerfile開始。dockerfile是映象的源**。

dockerfile中的一些常用指令如下:

下面的dockerfile包含四個命令,每個命令都建立乙個層。

from ubuntu:15.04
重要的是,每個層只是與之前一層的一組差異層(相同的就不再放到新層中)。

一般而言,雖然add並且copy在功能上類似,但是copy是優選的。

那是因為它比add更透明。copy僅支援將本地檔案基本複製到容器中,而add具有一些功能(如僅限本地的tar提取和遠端url支援),這些功能並不是很明顯。因此,add的最佳用途是將本地tar檔案自動提取到映象中,如add rootfs.tar.xz /中所示。

當映象用作另乙個映象構建的基礎時,onbuild指令向映象新增將在稍後執行的觸發指令。如果要構建將用作構建其他映象的基礎的映象(例如,可以使用特定於使用者的配置自定義的應用程式構建環境或守護程式),這將非常有用。

docker提供docker stats和docker事件等工具來監控生產中的docker。我們可以使用這些命令獲取重要統計資料的報告。

docker統計資料:當我們使用容器id呼叫docker stats時,我們獲得容器的cpu,記憶體使用情況等。它類似於linux中的top命令。

docker事件:docker事件是乙個命令,用於檢視docker守護程式中正在進行的活動流。

一些常見的docker事件是:attach,commit,die,detach,rename,destroy等。我們還可以使用各種選項來限制或過濾我們感興趣的事件。

編寫dockerfile

from node:8.4

run npm install --registry=

expose 3000

上面**一共五行,含義如下。

建立 image 檔案

有了 dockerfile 檔案以後,就可以使用docker image build命令建立 image 檔案了。

$ docker image build -t koa-demo .

上面**中,-t引數用來指定 image 檔案的名字,後面還可以用冒號指定標籤。如果不指定,預設的標籤就是latest。最後的那個點表示 dockerfile 檔案所在的路徑,上例是當前路徑,所以是乙個點。

如果執行成功,就可以看到新生成的 image 檔案koa-demo了。

$ docker image ls

生成容器

docker container run命令會從 image 檔案生成容器。

$ docker container run -p 8000:3000 -it koa-demo /bin/bash

上面命令的各個引數含義如下:

docker基礎知識 docker學習知識

學習任何乙個開源新技術,首先問自己幾個問題 1.為什要學習它?2.學習它需要了解哪些相關知識點?3.如何快速學習?4.該技術的使用場景是什麼?為什要學習docker?docker是輕量級虛擬化技術,docker使linux容器技術的應用更加簡單和標準化 docker容器啟動時毫秒級的 docker將...

docker知識 docker小映象

lynzabo ubuntu s docker images repository tag image id created size ubuntu latest 74f8760a2a8b 8 days ago 82.4mb alpine latest 11cd0b38bc3c 2 weeks ag...

docker初學知識

docker container run docker run 建立並執行容器 docker container create docker create 建立容器 docker container start docker start 啟動容器 docker container stop dock...