docker desktop ubuntu镜像_「Docker」 - 镜像仓库
一、鏡像倉庫
將Docker鏡像和Git進行對比,鏡像倉庫類似GitHub、GitLab等托管平臺,Docker的鏡像倉庫托管的不是代碼項目,而是鏡像。
Docker鏡像倉庫最大的作用是實現了Docker鏡像的分發。借助鏡像倉庫,得到了一個鏡像的中轉站,可以將開發環境上所使用的鏡像推送至鏡像倉庫,并在測試或生產環境上拉取到它們,而這個過程僅需要幾個命令,甚至自動化完成。
Docker另一項重要的功能是將鏡像管理納入到了功能之中,實現虛擬化只是程序能夠無縫移植的一部分,而有了鏡像管理,就真正取代了移植過程中的繁瑣操作。利用Docker的鏡像管理功能,可以很方便的通過網絡傳輸和分享鏡像,并保障鏡像內容的一致性。
A、獲取鏡像
可以通過很多方式將鏡像引入Docker之中,但最常用的獲取鏡像的方式是直接從鏡像倉庫中拉取,因為這種方式簡單、快速、有保障。
可以使用docker pull命令拉取鏡像,命令的參數就是鏡像倉庫名。
# 拉取鏡像 docker pull ubuntuUsing default tag: latest latest: Pulling from library/ubuntu 6cf436f81810: Pull complete 987088a85b96: Pull complete b4624b3efe06: Pull complete d42beb8ded59: Pull complete Digest: sha256:7a47ccc3bbe8a451b500d2b53104868b46d60ee8f5b35a24b41a86077c650210 Status: Downloaded newer image for ubuntu:latest# 查看本地鏡像 docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 47b19964fb50 12 days ago 88.1MB運行命令后,Docker就會開始從鏡像倉庫中拉取指定的鏡像,在控制臺中,可以看到鏡像拉取的進度。下載進度會分為幾行,每行代表一個鏡像層。Docker首先會拉取鏡像所基于的所有鏡像層,之后再單獨拉取每一個鏡像層并組合成這個鏡像。如果在本地已經存在相同的鏡像層(共享于其他的鏡像),Docker就直接略過這個鏡像層的拉取而直接采用本地的內容。
當沒有提供鏡像標簽時,Docker會默認使用latest這個標簽,也能夠使用完整的鏡像命名來拉取鏡像。
二、Docker Hub
Docker Hub是Docker官方建立的中央鏡像倉庫,除了普通鏡像倉庫的功能外,它內部還有更加細致的權限管理,支持構建鉤子和自動構建,以及優雅的web操作頁面。
Docker Hub的定位是Docker的中央鏡像倉庫系統,同時也是Docker Engine的默認鏡像倉庫,所以使用Docker Hub是開發者共享鏡像的首選,常用服務軟件的鏡像都能在Docker Hub中找到,甚至能找到針對它們不同用法的不同鏡像。
同時,Docker Hub也允許用戶上傳鏡像,與Docker用戶共享成果。
A、搜索鏡像
由于Docker Hub提供了一套完整的web操作界面,搜索其中的鏡像會非常方便。
除了直接通過Docker Hub網站搜索鏡像這種方式外,還可以用docker CLI中docker search這個命令搜索Docker Hub中的鏡像。
docker search ubuntuNAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Ubuntu is a Debian-based Linux operating sys… 9198 [OK] dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC 270 [OK] rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 201 [OK]使用docker search命令,可以得到一個類似于Docker Hub網頁版搜索的鏡像列表結果,其中的信息與網頁版也是類似的。通過這種方式可以在不方便訪問web的環境下搜索鏡像。
三、管理鏡像
docker images可以列出本地 Docker 中的所有鏡像,如果要獲得鏡像更詳細的信息,可以通過docker inspect命令。
A、參數識別
不論通過鏡像名還是鏡像ID傳遞到docker inspect或者其他類似的命令(需要指定Docker對象的命令)里,Docker都會根據傳入的內容去尋找與之匹配的內容,只要所給出的內容能夠找出唯一的鏡像,那么Docker就會對這個鏡像執行給定的操作。反之,如果找不到唯一的鏡像,那么操作不會進行,Docker也會顯示錯誤。
例如:
docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE php 7-fpm f214b5c48a25 11 days ago 368MB ubuntu latest cd6d8154f1e1 13 days ago 84.1MB redis 3.2 2fef532eadb3 13 days ago 76MB redis 4.0 e1a73233e3be 13 days ago 83.4MB openresty/openresty 1.13.6.2-alpine 08d5c926e4b6 3 months ago 49.3MB cogset/cron latest c01d5ac6fc8a 16 months ago 125MB鏡像ID前綴為2的只有redis:3.2,可以使用2來指代這個鏡像。
docker inspect 2而前綴為c的鏡像有兩個,這時候如果直接使用c來指代鏡像的話,Docker會提示未能匹配到鏡像。
B、刪除鏡像
雖然Docker鏡像占用的空間比較小,但日漸冗雜的鏡像和凌亂的鏡像版本會讓管理越來越困難,所以有時候需要清理一些無用的鏡像,將它們從本地的Docker Engine中移除。
# 刪除本地鏡像 docker rmi ubuntuUntagged: ubuntu:latest Untagged: ubuntu@sha256:7a47ccc3bbe8a451b500d2b53104868b46d60ee8f5b35a24b41a86077c650210 Deleted: sha256:47b19964fb500f3158ae57f20d16d8784cc4af37c52c49d3b4f5bc5eede49541 Deleted: sha256:d4c69838355b876cd3eb0d92b4ef27b1839f5b094a4eb1ad2a1d747dd5d6088f Deleted: sha256:1c29a32189d8f2738d0d99378dc0912c9f9d289b52fb698bdd6c1c8cd7a33727 Deleted: sha256:d801a12f6af7beff367268f99607376584d8b2da656dcd8656973b7ad9779ab4 Deleted: sha256:bebe7ce6215aee349bee5d67222abeb5c5a834bbeaa2f2f5d05363d9fd68db41刪除鏡像的過程實際是刪除鏡像內的鏡像層,在命令打印的結果里,可以看到被刪除的鏡像層以及它們的ID。如果存在兩個鏡像共用一個鏡像層的情況,也不需要擔心Docker會刪除被共享的那部分鏡像層,只有當鏡像層只被當前被刪除的鏡像所引用時,Docker才會將它們從硬盤空間中移除。
docker rmi命令也支持同時刪除多個鏡像,只需要通過空格傳遞多個鏡像ID或鏡像名即可。
參考:
http://blog.poetries.top/2018/11/20/docker-base/
總結
以上是生活随笔為你收集整理的docker desktop ubuntu镜像_「Docker」 - 镜像仓库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内向的人这样改善人际关系(四)
- 下一篇: win10删除开机密码_新版WIN10