<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
之前我們提到過 Docker 官⽅提供了⼀個公共的映象倉庫:Docker Hub,我們就可以從這上⾯獲取映象,獲取映象的命令:docker pull,格式為:
$ docker pull [選項] [Docker Registry 地址[:端⼝]/]倉庫名[:標籤]
Docker 映象倉庫地址:地址的格式⼀般是 <域名/IP>[:端⼝號],預設地址是 Docker Hub。
倉庫名:這⾥的倉庫名是兩段式名稱,即 <⽤戶名>/<軟體名>。對於 Docker Hub,如果不給出⽤ 戶名,則預設為 library,也就是官⽅映象。⽐如:
$ docker pull ubuntu:16.04 16.04: Pulling from library/ubuntu bf5d46315322: Pull complete 9f13e0ac480c: Pull complete e8988b5b3097: Pull complete 40af181810e7: Pull complete e6f7c7e5c03e: Pull complete Digest: sha256:147913621d9cdea08853f6ba9116c2e27a3ceffecf3b492983ae97c3d643fbbe Status: Downloaded newer image for ubuntu:16.04
上⾯的命令中沒有給出 Docker 映象倉庫地址,因此將會從 Docker Hub 獲取映象。⽽映象名稱是 ubuntu:16.04,因此將會獲取官⽅映象 library/ubuntu 倉庫中標籤為 16.04 的映象。 從下載過程中 可以看到我們之前提及的分層儲存的概念,映象是由多層儲存所構成。下載也是⼀層層的去下 載,並⾮單⼀⽂件。下載過程中給出了每⼀層的 ID 的前 12 位。並且下載結束後,給出該映象完 整的 sha256 的摘要,以確保下載⼀致性。
有了映象後,我們就能夠以這個映象為基礎啟動並運⾏⼀個容器。以上⾯的 ubuntu:16.04 為例,如果 我們打算啟動⾥⾯的 bash 並且進⾏互動式操作的話,可以執⾏下⾯的命令。
$ docker run -it --rm ubuntu:16.04 /bin/bash root@e7009c6ce357:/# cat /etc/os-release NAME="Ubuntu" VERSION="16.04.4 LTS, Trusty Tahr" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04.4 LTS" VERSION_ID="16.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
docker run 就是運⾏容器的命令,具體格式我會在以後進⾏詳細講解,我們這⾥簡要的說明⼀下上⾯⽤到的引數:
-it:這是兩個引數,⼀個是 -i:互動式操作,⼀個是 -t 終端。我們這⾥打算進⼊ bash 執⾏⼀些命 令並檢視返回結果,因此我們需要互動式終端。
--rm:這個引數是說容器退出後隨之將其刪除。預設情況下,為了排障需求,退出的容器並不會⽴ 即刪除,除⾮⼿動 docker rm。我們這⾥只是隨便執⾏個命令,看看結果,不需要排障和保留結 果,因此使⽤ --rm 可以避免浪費空間。
ubuntu:16.04:這是指⽤ ubuntu:16.04 映象為基礎來啟動容器。
bash:放在映象名後的是命令,這⾥我們希望有個互動式 Shell,因此⽤的是 bash。
進⼊容器後,我們可以在 Shell 下操作,執⾏任何所需的命令。這⾥,我們執⾏了 cat /etc/os- release ,這是 Linux 常⽤的檢視當前系統版本的命令,從返回的結果可以看到容器內是 Ubuntu 16.04.4 LTS 系統。最後我們通過 exit 退出了這個容器。
$ docker image ls
列表包含了倉庫名、標籤、映象 ID、建立時間以及所佔⽤的空間。映象 ID 則是映象的唯⼀標識,⼀個映象可以對應多個標籤。
如果仔細觀察,會注意到,這⾥標識的所佔⽤空間和在 Docker Hub 上看到的映象⼤⼩不同。⽐如, ubuntu:16.04 映象⼤⼩,在這⾥是 127 MB,但是在Docker Hub顯示的卻是 43 MB。這是因為 Docker Hub 中顯示的體積是壓縮後的體積。在映象下載和上傳過程中映象是保持著壓縮狀態的,因此 Docker Hub 所顯示的⼤⼩是⽹絡傳輸中更關⼼的流量⼤⼩。⽽ docker image ls 顯示的是映象下載到本地後展開的⼤⼩,準確說,是展開後的各層所佔空間的總和,因為映象到本地後,檢視空間的時候, 更關⼼的是本地磁碟空間佔⽤的⼤⼩。
另外⼀個需要注意的問題是, docker image ls 列表中的映象體積總和並⾮是所有映象實際硬碟消 耗。由於 Docker 映象是多層儲存結構,並且可以繼承、復⽤,因此不同映象可能會因為使⽤相同的基 礎映象,從⽽擁有共同的層。由於 Docker 使⽤ Union FS ,相同的層只需要儲存⼀份即可,因此實際 映象硬碟佔⽤空間很可能要⽐這個列表映象⼤⼩的總和要⼩的多。你可以通過以下命令來便捷的檢視映象、容器、資料卷所佔⽤的空間。
$ docker system df
如果要刪除原生的映象,可以使⽤`docker image rm·命令,其格式為:
$ docker image rm [選項] <映象1> [<映象2> ...]
或者
$ docker rmi 映象名
或者⽤ ID、映象名、摘要刪除映象,其中,<映象> 可以是 映象短 ID、映象⻓ ID、映象名 或者 映象摘要。 ⽐如我們有這麼⼀些映象:
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 0584b3d2cf6d 3 weeks ago 196.5 MB redis alpine 501ad78535f0 3 weeks ago 21.03 MB docker latest cf693ec9b5c7 3 weeks ago 105.1 MB nginx latest e43d811ce2f4 5 weeks ago 181.5 MB
我們可以⽤映象的完整 ID,也稱為⻓ ID,來刪除映象。使⽤指令碼的時候可能會⽤⻓ ID,但是⼈⼯輸⼊就太累了,所以更多的時候是⽤短 ID 來刪除映象。 docker image ls 預設列出的就已經是短 ID 了,⼀般取前3個字元以上,只要⾜夠區分於別的映象就可以了。
⽐如這⾥,如果我們要刪除redis:alpine映象,可以執⾏:
$ docker image rm 501 Untagged: redis:alpine Untagged: redis@sha256:f1ed3708f538b537eb9c2a7dd50dc90a706f7debd7e1196c9264edeea521a86d Deleted: sha256:501ad78535f015d88872e13fa87a828425117e3d28075d0c117932b05bf189b7 Deleted: sha256:96167737e29ca8e9d74982ef2a0dda76ed7b430da55e321c071f0dbff8c2899b Deleted: sha256:32770d1dcf835f192cafd6b9263b7b597a1778a403a109e2cc2ee866f74adf23 Deleted: sha256:127227698ad74a5846ff5153475e03439d96d4b1c7f2a449c7a826ef74a2d2fa Deleted: sha256:1333ecc582459bac54e1437335c0816bc17634e131ea0cc48daa27d32c75eab3 Deleted: sha256:4fc455b921edf9c4aea207c51ab39b10b06540c8b4825ba57b3feed1668fa7c7
我們也可以⽤映象名,也就是 <倉庫名>:<標籤>,來刪除映象。
$ docker image rm centos Untagged: centos:latest Untagged: centos@sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c Deleted: sha256:0584b3d2cf6d235ee310cf14b54667d889887b838d3f3d3033acd70fc3c48b8a Deleted: sha256:97ca462ad9eeae25941546209454496e1d66749d53dfa2ee32bf1faabd239d38
到此這篇關於Docker映象的基本操作方法的文章就介紹到這了,更多相關Docker映象內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45