docker的三個基本概念:倉庫、鏡像、容器(鏡像和容器之間的關係可以理解爲“類和實例”的關係)
(todo)centos使用docker有必要配置direct-lvm
1.拉取鏡像
docker pull [選項] [倉庫地址[:端口號]/]倉庫名:標籤
如果未給出倉庫地址則默認從官方(Docker Hub)倉庫(library)拉取,即官方鏡像
如:docker pull ubuntu:16.04 ## 從官方拉取ubuntu標籤爲16.04的鏡像
2.查看本地鏡像
docker image ls [選項]
docker image ls # 顯示所有頂層鏡像
docker image ls -a # 顯示包括中間層鏡像在內的所有鏡像
docker image ls ubuntu # 列出所有ubuntu鏡像
docker image ls ubuntu:16.04 # 列出ubuntu標籤爲16.04的鏡像
docker image ls -f since=ubuntu:16.04 # -f爲filter過濾 since指定列出ubuntu:16.04之後建立的鏡像 since替換爲before即爲之前
-q 列出時只顯示鏡像id
--format "{{.ID}}: {{.Repository}}" 格式化輸出將想要顯示的字段用{{.字段}}進行填充
--digests 顯示鏡像描述信息(sha256)
# 查詢本地鏡像
[work@VM_0_3_centos ubuntu]$ docker image ls --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
ubuntu 16.04 sha256:a218d8dacc99e49cbdc5862d5c6ee105eb40d4e87bec2e4dac37361c30171ce0 52b10959e8aa 6 days ago 115MB
hello-world latest sha256:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdc 2cb0d9787c4d 7 weeks ago 1.85kB
3.刪除本地鏡像
docker image rm [選項] <鏡像1> [<鏡像2>]
刪除時可以通過長id、短id(一般選id的前三位以上,足以區分鏡像就可以)、倉庫名[:標籤]、鏡像描述都可以
如:docker image rm 52b10959e8aa
docker image rm 52b10
docker image rm ubuntu
docker image rm ubuntu:16.04
docker image rm node@sha256:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdc
ps:執行刪除鏡像的命令會有兩種結果Untagged(取消標記)和Deleted(刪除)。
同一個鏡像可以有多個標籤,當我們執行刪除命令的時候會找到所有滿足條件的鏡像執行取消標籤對鏡像的進行標記,
當一個鏡像沒有被標籤標記的時候纔會真正刪除鏡像,所有某些刪除命令的結果只有Untagged操作。
另外有基於此鏡像啓動的容器存在(即便容器不在運行狀態)時,此容器將不允許被刪除。
# 刪除命令可以和查詢命令配合使用
docker image rm $(docker image ls -q ubuntu) # 刪除所有ubuntu的鏡像
docker image rm $(docker image ls -q -f before=ubuntu:16.04) # 刪除所有在ubuntu:16.04之前建立的鏡像