跟我一起學docker(三)--鏡像的基本操作

跟我一起學docker(三)--鏡像的基本操作

1.獲取鏡像:

命令:

docker pull <域名>//:

說明:

鏡像是Docker運行容器的前提。

用戶可以使用docker pull 命令從網路上下載鏡像。對於鏡像來說,如果不顯式地指定tag,則默認會選擇latest標籤,即下載倉庫中最新版本的鏡像。

默認是從docker官方下載的。只有docker官方的可以不需要增加命名空間直接進行下載。

2.查看鏡像列表

命令:

docker images

說明:

使用docker images命令可以列出本地主機上已有的鏡像。

信息含義:來自於哪個倉庫、鏡像的標籤信息、鏡像的ID號(唯一)、創建時間、鏡像大小。

3.查看鏡像信息

命令:

docker inspect

說明:

docker inspect命令返回的是一個JSON的格式消息,如果我們只要其中的一項內容時,可以通過-f參數來指定。Image_id通常可以使用該鏡像ID的前若干個字元組成的可區分字元串來替代完成的ID。

查看鏡像的某一個詳細信息

4.查找鏡像

命令:

docker search

說明:

使用docker search命令可以搜索遠端倉庫中共享的鏡像,默認搜索Docker hub官方倉庫中的鏡像。

5.刪除鏡像

命令:

說明:

使用docker rmi命令可以刪除鏡像,其中image可以為標籤或ID。

注意:

當同一個鏡像擁有多個標籤,docker rmi只是刪除該鏡像多個標籤中的指定標籤而已,而不影響鏡像文件。

當有該鏡像創建的容器存在時,鏡像文件默認是無法被刪除的。

如果一個鏡像就有一個tag的話,刪除tag就刪除了鏡像的本身。

一個鏡像做一個tag

執行刪除tag操作

刪除鏡像操作

重新下載鏡像,方便下一步關於鏡像和容器的關係演示

如果鏡像裡面有容器正在運行,刪除鏡像的話,會提示error,系統默認是不允許刪除的,如果強制刪除需要加入-f操作,但是docker是不建議這麼操作的,因為你刪除了鏡像其實容器並未刪除,直接導致容器找不到鏡像,這樣會比較混亂。

運行一個鏡像裡面的容器

查看運行中的容器

刪除鏡像,報錯誤error,有一個容器正在這個鏡像內運行

強制刪除

已經找不到鏡像,刪除鏡像未刪除容器的後果

6.創建鏡像

命令:

docker commit

參數說明:

-a , --author : 作者信息

-m , --meassage : 提交消息

-p , --pause=true : 提交時暫停容器運行

說明:

基於已有的鏡像的容器的創建。再次下載ubuntu,以ubuntu為例子創建

運行ubuntu,-ti把容器內標準綁定到終端並運行bash,這樣開跟傳統的linux操作系統沒什麼兩樣,現在我們直接在容器內運行。這個內部系統都是極簡的只保留我們的一些系統的運行參數,裡面很多vi命令可能都是沒有的。

退出容器exit

容器創建成鏡像的方法:

通過某個容器d1d6706627f1 創建對應的鏡像,有點類似git

發現通過docker images 裡面多了一個鏡像

liming/test的倉庫

7.遷出鏡像

命令:docker save

參數說明:

-o:設置存儲壓縮後的文件名稱

說明:

可以使用docker save命令來遷出鏡像,其中image可以為標籤或ID。

8.載入鏡像

命令:

說明:

使用docker load命令可以載入鏡像,其中image可以為標籤或ID。這將導入鏡像及相關的元數據信息(包括標籤等),可以使用docker images命令進行查看。我們先刪除原有的liming/test鏡像,執行查看鏡像,然後在導入鏡像

為了確定導入的鏡像是否是原來刪除的那個鏡像,我們進入鏡像,查看下text.txt

是我們輸入的idig88這個內容

可能這個鏡像的名字不符合docker的要求因為都是,重新命名一下

9.上傳鏡像

命令:

docker push <域名>//:

說明:

可以使用docker push命令上傳鏡像到倉庫,默認上傳到DockerHub官方倉庫(需要登錄)。

開始提示我許可權不足,因為我沒有登錄。

登錄之後提示

登錄後刪除還是許可權不足

因為我們liming這個名字跟官網的zhugeaming名字不一致我修改下在試試

開始上傳了

去官網看看是否上傳成功

往期docker學習:

認識docker

核心概念和安裝


推薦閱讀:

TAG:Docker | DockerCompose | 容器雲 |