docker 把應用程式及其依賴,打包在 image 檔案裡面。只有通過這個檔案,才能生成 docker 容器。image 檔案可以看作是容器的模板。docker 根據 image 檔案生成容器的例項。同乙個 image 檔案,可以生成多個同時執行的容器例項。
image 是二進位制檔案。實際開發中,乙個 image 檔案往往通過繼承另乙個 image 檔案,加上一些個性化設定而生成。舉例來說,你可以在 ubuntu 的 image 基礎上,往裡面加入 apache 伺服器,形成你的 image。
image 檔案是通用的,一台機器的 image 檔案拷貝到另一台機器,照樣可以使用。一般來說,為了節省時間,我們應該盡量使用別人製作好的 image 檔案,而不是自己製作。即使要定製,也應該基於別人的 image 檔案進行加工,而不是從零開始製作。# 列出本機的所有 image 檔案。
$ docker image ls
# 刪除 image 檔案
$ docker image rm [imagename]
為了方便共享,image 檔案製作完成後,可以上傳到網上的倉庫。docker 的官方倉庫 docker hub 是最重要、最常用的 image 倉庫。此外,**自己製作的 image 檔案也是可以的。
下面,我們通過最簡單的 image 檔案"hello world",感受一下 docker。
上面**中,$ docker image pull library/hello-world
docker image pull
是抓取 image 檔案的命令。library/hello-world
是 image 檔案在倉庫裡面的位置,其中library
是 image 檔案所在的組,hello-world
是 image 檔案的名字。
由於 docker 官方提供的 image 檔案,都放在library
組裡面,所以它的是預設組,可以省略。因此,上面的命令可以寫成下面這樣。
抓取成功以後,就可以在本機看到這個 image 檔案了。$ docker image pull hello-world
$ docker image ls
$ docker container run hello-world
docker container run
命令會從 image 檔案,生成乙個正在執行的容器例項。
注意,docker container run
命令具有自動抓取 image 檔案的功能。如果發現本地沒有指定的 image 檔案,就會從倉庫自動抓取。因此,前面的docker image pull
命令並不是必需的步驟。
如果執行成功,你會在螢幕上讀到下面的輸出。
輸出這段提示以後,$ docker container run hello-world
hello from docker!
... ...
hello world
就會停止執行,容器自動終止。
有些容器不會自動終止,因為提供的是服務。比如,安裝執行 ubuntu 的 image,就可以在命令列體驗 ubuntu 系統。
對於那些不會自動終止的容器,必須使用$ docker container run -it ubuntu bash
docker container kill
命令手動終止。
image 檔案生成的容器例項,本身也是乙個檔案,稱為容器檔案。也就是說,一旦容器生成,就會同時存在兩個檔案: image 檔案和容器檔案。而且關閉容器並不會刪除容器檔案,只是容器停止執行而已。$ docker container kill [containid]
上面命令的輸出結果之中,包括容器的 id。很多地方都需要提供這個 id,比如上一節終止容器執行的# 列出本機正在執行的容器
$ docker container ls
# 列出本機所有容器,包括終止執行的容器
$ docker container ls --all
docker container kill
命令。
終止執行的容器檔案,依然會佔據硬碟空間,可以使用
docker container rm
命令刪除。
執行上面的命令之後,再使用$ docker container rm [containerid]
docker container ls --all
命令,就會發現被刪除的容器檔案已經消失了。 docker入門 docker安裝
docker入門 docker安裝 ubuntu 安裝 curl ssl sh 官方安裝指令碼自動安裝 systemctl enable docker systemctl is enabled docker 開機自啟動 sudo usermod ag docker npoulton 根據自己的使用者...
Docker(一) Docker入門簡介
docker是一種容器技術,是用於在某種程度上替換系統虛擬化的解決方案。使用docker可以很快速及便捷的交付應用,不用在考慮硬體及系統的相容性,使而更關注與業務的發展。docker 和硬體虛擬化方式的差異在於docker是在os層面上實現虛擬化,而基於硬體虛擬化方式則是在hw層面實現。p.s.來自...
Docker基礎 天池Docker入門
容器 container 容器是執行中的映象,他的實質是程序,通過docker ps可以檢視執行中的容器。倉庫 repository 首先我們需要登陸乙個伺服器docker registry,然後每個registry上可以包含多個repository,每個repository下可以多個tag相當於不...