--- tags: Docker, Container --- # Docker介紹(二) ## Docker Docker並不是唯一的Conatiner技術,而是最熱門的技術其中之一。而Docker主要是Linux Container (LXC)的擴展,使用API ## Docker基本概念 了解完Docker的基本概念後,要進一步了解使用Docker時最重要的三個元素,分別是Image、Container、Registry,而這三個概念主要為: ### Image: Image是一個模板,可用來產生Container,而這個模板可以是一個MySQL服務,或者是一個輕量的Ubuntu的作業系統。而透過Image,我們可以產生執行應用程式的Container,而這個Image可以是由Dockerfile建立,也可以從Registry下載別人已經建立好的Image,並基於這個Image做額外擴充。 ### Container: Container是透過Image建立出來的,它是一個互相隔離、獨立的空間。Container包含了我們所需的應用程式元件,而它是可以透過指令來進行新增、開始、停止、刪除,也可以透過額外參數對它進行額外配置。 ### Registry: 其實Registry就像github一樣,它可以存放很多Images,並透過push、pull的方式上傳、下載這個Image。而目前最大型的公開Registry是DockerHub。 ## Docker運作流程 Docker在建立一個最基本的Image及Container的流程如下圖: ![](https://i.imgur.com/TO9JV9c.png) ### docker build (短虛線): 透過指令將Dockerfile叫daemon建立一個Image。而若妳的Dockerfile有基於某個Image,它是會自動去尋找這個Image並pull下來,然後在透過docker build出新的Image。 ### docker pull (長虛線): 透過指令去特定的Registry將Image pull到本地端。 ### docker run (長、短虛線): 透過指令去以Image來建立定執行Container,而若本地端沒有這個Image,也可以到Registry內找到這個Image並先pull到本地端,接著依據這個Image創建成Container。 ###### tags: `Docker` `Container`