《第一本Docker書》學習筆記——第4章 使用Docker鏡像和倉庫
4.2 列出鏡像
使用docker images
命令:
sudo docker images
本地鏡像都保存在Docker宿主機的/var/lib/docker
目錄下。
也可以在/var/lib/docker/containers
目錄下看到所有的容器的ID。
鏡像從倉庫下載下來。鏡像保存在倉庫中,而倉庫存在於Registry中。磨人的Registry是由Docker公司運營的公共Registry服務,即Docker Hub。
代碼清單4-3 拉取Ubuntu 16.04的鏡像
sudo docker pull ubuntu:16.04
這裏使用了docker pull
命令來拉取ubuntu倉庫中Ubuntu 16.04鏡像。
為了區分同一個倉庫中的不同景象,Docker提供了一種稱為 標簽(tag) 的功能。每個鏡像在列出來時都帶有一個標簽,如12.04、12.10、quantal或者precise等。每個標簽對組成特定鏡像的一些鏡像層進行標記(比如,標簽12.04就是對所有Ubuntu 12.04鏡像的層的標記)。這種機制使得在同一個倉庫中可以存儲多個鏡像。
我們可以通過在倉庫名後面加上一個冒號和標簽名來指定該倉庫中的某一鏡像:
代碼清單4-5 運行一個帶標簽的Docker鏡像
sudo docker run -t -i --name zifeiy_container ubuntu:16.04 /bin/bash
這個例子會從鏡像 ubuntu:16.04 啟動一個容器,而這個鏡像的操作系統則是Ubuntu 16.04。
4.3 拉取鏡像
代碼清單4-7 拉取fedora鏡像
sudo docker pull fedora:28
代碼清單4-8 查看fedora鏡像
sudo docker images fedora
4.4 查找鏡像
我們可以通過 docker search
命令來查找所有 Docker Hub 上公共的可用鏡像:
代碼清單4-10 查找鏡像
sudo docker search puppet
代碼清單4-11 拉取一個用戶鏡像jamtur01/puppetmaster
sudo docker pull jamtur01/puppetmaster
這條命令將會下載 jamtur01/puppetmaster
接著就可以用這個鏡像構建一個容器了。下面就用
docker run
命令來構建一個容器:代碼清單4-12 從Puppet master鏡像創建一個容器
sudo docker run -i -t jamtur01/puppetmaster /bin/bash
4.7 刪除鏡像
使用 docker rmi
命令來刪除一個鏡像:
代碼清單4-86 刪除Docker鏡像
sudo docker rmi jamtur01/static_web
代碼清單4-87 同時刪除多個Docker鏡像
sudo docker rmi jamtur01/apache2 jamtur01/puppetmaster
代碼清單4-88 刪除所有鏡像
sudo docker rmi `docker images -a -q`
4.8 運行自己的Docker Registry
4.8.1 從容器運行Registry
代碼清單4-89 運行基於容器的Registry
sudo docker run -p 5000:5000 registry:2
該命令將會啟動一個運行Registry應用2.0版本的容器,並將5000端口綁定到本地宿主機。
4.8.2 測試新Registry
首先下載一個Docker鏡像:
sudo docker pull jamtur01/static_web
代碼清單4-90 查看jamtur01/static_web Docker鏡像
sudo docker images jamtur01/static_web
我這裏jamtur01/static_web
現實的IMAGE_ID是7c3b35d31608
。我們找到了這個鏡像ID,並使用心得Registry給該鏡像打上標簽。為了制定新的Registry目的地址,需要在鏡像名前面加上主機名和端口前綴。在這個例子裏,我們的Registry主機名為localhost:
代碼清單4-91 使用新Registry為鏡像打標簽
sudo docker tag 7c3b35d31608 localhost:5000/jamtur01/static_web
為鏡像打完標簽之後,就能通過docker push
命令將它推送到新的Registry中去了:
代碼清單4-92 將鏡像推送到新Registry
sudo docker push localhost:5000/jamtur01/static_web
這個鏡像就被提交到了本地的Registry中,並且可以將其用於使用 docker run
命令構建新容器:
代碼清單4-93 從本地Registry構建新的容器
sudo dockerr run -t -i localhost:5000/jamtur01/static_web /bin/bash
《第一本Docker書》學習筆記——第4章 使用Docker鏡像和倉庫