2014-08-28 204 views
12

官方倉庫更新時如何更新Docker鏡像?如何更新Docker鏡像

當我更改DockerFile或者Dockerfile包含時間敏感信息時,如何更新自定義圖像?

建立新圖像還是重建現有圖像是更好的做法嗎?

什麼是重建現有圖像的最佳方式?

區分同一圖像的多個版本的最佳方法是什麼?

回答

10

官方信息庫更新時如何更新Docker鏡像?

如果您使用Docker Hub創建自動構建,那麼您可以添加一個Repository Link,這將在鏈接回購更新時重建您的回購。

如果您想自己做構建,可以創建一個hacky解決方法,通過上面的鏈接獲取通知並重建一個簡單的repo,然後使用Web Hook來通知構建系統該更改。

當我更改DockerFile或者Dockerfile包含時間敏感信息時,如何更新自定義圖像?

如果您使用Docker Hub進行自動構建,那麼對BitBucket或GitHub源代碼庫的更改(包括Dockerfile更改)將觸發新構建。

如果您是building images yourself,只需在您的Dockerfile所在的目錄中鍵入docker build .即可。您可以使用--no-cache強制進行全新的重建

建立新圖像還是重建現有圖像是更好的做法嗎?

這取決於誰在使用您的圖像。當你build,結果總是一個新的形象,但你如何tag結果可以使它看起來像舊圖像或新的東西的替代品。

區分同一圖像的多個版本的最佳方法是什麼?

使用:tag功能的名稱,如

ubuntu:latest 
ubuntu:12.04 
ubuntu:14.04 
... 

看到https://registry.hub.docker.com/_/ubuntu/爲所有的「Ubuntu的」圖像上的變化的完整列表。請參閱tag文檔以獲取友好圖像名稱的完整格式。所有標籤和名稱都是規範映像名稱的別名,當您運行docker images --no-trunc時,看起來很長的UUID字符串。

+0

非常感謝Andy,我寫了這個問題試圖想象一個關於碼頭圖像維護的教程。你的回覆非常好,超出了我最初的期望。我認爲這屬於官方的碼頭文件,因爲我猜這對碼頭工新手來說是一個很常見的問題。 – Mascarpone 2014-08-28 21:31:47