動手玩Windows 10 Docker(1) - 如何找到想要的Docker Image?

Windows 10 Docker 是2016年度更新後很大的一個進步但(好像)被很多人忽略沒有話題性

這個系列是我的學習筆記也順便推廣這好用的東西

前一篇簡單介紹Docker的安裝, 這篇才是正式開始玩Docker

我們做到了如何以docker指令開始做一些簡單的東西, 和了解有甚麼可以做

但docker沒有部件就甚麼也做不了, 所以我們先要學習如何找部件

docker images指令可以看到我們現在的docker可以使用的組件

而docker search可以找到github上開放抓取的images, 例如如果我們知道有一個image叫hello-world

我們可以打docker search hello-world

我們找到了很多Hello-World, 在結果中的首項有一個名稱是hello-world的images

右方看到星星數(STARS)和OFFICIAL OK, 即是官方發佈的hello-world組件,

另外還有很多其他人發佈的Hello-world, 其他的組件也一樣, 每個人也可以組合, 發行不同的部件

Docker的Image世界五花八門, 我們可以從星星數看到部件是否可靠, 你在日後也可以為部件給星星

要拿到組件, 我們用docker pull NAME 指令, 例如docker pull hello-world

可以看到docker已經抓到hello-world預設的最新(Latest)版本而且下載回來了

再試試docker images, 可以看到我們的存庫裡有一個hello-world部件, 每個部件都有一個特別的Image ID以資識別

image的名稱可以是一樣的, 但他們會有不同的TAG和Image ID, 在日後啟動時用作分別版本

那我們怎麼知道Hello-world還有甚麼版本? 暫時docker沒有很容易的指令查詢方式

但有些用家已經選寫了工具來查詢docker hub上所有的Tags, 我自己使用的是

harisekhon/pytools dockerhub_show_tags.py 這個 python工具, 原創者的github頁面是

https://github.com/harisekhon/pytools 

例如我們可以這樣

docker run harisekhon/pytools dockerhub_show_tags.py hello-world

沒有使用過的話會需要先下載回來

最後我們得知hello-world有兩個tag的版本可以抓取, 就是latest和nanoserver.

又例如我們想知道mysql有多少個tag可以取用? 

先看看是不是有mysql這個東西docker search mysql,

啊有的, 而且有正廠出品, 名稱正正就叫mysql

我們看看他有幾個tag可以選擇

docker run harisekhon/pytools dockerhub_show_tags.py mysql

哇...超誇張的從5.0到8.0.0都有, 如果我們要限定抓取一個特定的版本而非最新版本要如何做? 

我們可以在上面的docker pull指令上補上TAG來告訴docker我們想要的是那一個tag的版本, 例如

docker pull mysql:5.7.9

再看看docker images, 我們已經拿到5.7.9版本的Mysql了...如果我們再拿8.0.0版本的又會怎樣?

現在可以看到了, 我們的docker現在可以用的有1年前發行的5.7.9, 也有2星期前的8.0.0

現在我們知道怎樣找到適合的組件了, 那怎樣使用? 下一篇我們來看看 ;)