5個你必須知道的Docker實用工具
作者 | Shekhar Gulati
翻譯 | Vincent
Docker社區已經創建了許多開源的工具,更多的用例使得它比您想像的更有用。你可以在這裡查閱它們。
你在網上能找到很多酷炫的Docker工具。絕大多數是開源的。
過去兩年,我已經積極地將Docker用到我的對大多數開發項目中。在你開始使用Docker的時候,你會發現,在很多用例里它比你預想的更加適用。
你會希望Docker為你做得更多,而且它不會讓你失望!
Docker社區非常活躍,每天都有很多有用的工具。在這個社區你很難知道哪些發生了革新。為了幫助你,我已經收集了我日常工作中用到的很有趣很實用的Docker工具。這些讓我工作更加高效,消除了很多的手動工作。
讓我們來看看我在使用Dockerize工具的過程中發現的每個工具。
1. watchtower:自動更新Docker容器
Watchtower監視運行中的容器,以便於對容器最初的鏡像進行更改。當Watchtower檢測到鏡像發生改變時,會自動使用新的鏡像重啟容器。
我在本地開發中想要創建新的鏡像就會使用它。
Watchtower本身會打包成Docker映像,所以您可以運行它,就像運行任何其他容器一樣。當你要運行Watchtower,您將會用到下面的指令:
在上面的命令中,我們啟動了一個帶有掛載文件/var/run/docker.sock . 的Watchtower容器。這個步驟是必須的,通過設置30秒的時間間隔選項,為了能夠讓Watchtower可以和Docker守護進程API進行交互。這個時間定義了Watchtower
的輪詢時間。Watchtower裡面有很多的這樣的選項設置,你可以按照文檔所述使用它們。
現在我們就開始讓Watchtower去監視一個容器:
Watchtower將要開始監視friendlyhello這個容器。當我將新的鏡像推送到Docker Hub時,Watchtower將在下一次運行時檢測到有新的鏡像可用,它將停止容器,並使用新的鏡像啟動容器,它會傳遞給我們運行命令行時的選項設置。換句話說,容器將以4000:80埠啟動。
默認情況下,Watchtower將輪詢Docker Hub註冊表以查找更新的鏡像。您可以通過將註冊表憑據傳遞給環境變數REPO_USER和REPO_PASS來配置Watchtower,讓它去輪詢私有註冊表。要了解更多關於Watchtower的信息,我建議您去查看Watchtower文檔(https://github.com/v2tec/watchtower/blob/master/README.md)。
2. docker-gc:容器和鏡像的垃圾回收
docker-gc實用程序會幫助你清理Docker主機,去除那些沒用的容器和鏡像文件。它會刪除一個多小時前存在的所有容器。此外,它還會刪除不屬於任何剩餘容器的
鏡像。
您可以將docker-gc用作腳本和容器。我們將運行docker-gc作為容器,用它來找到所有將要被刪除的容器和鏡像。
在上面顯示的命令中,我們安裝了Docker套接字文件,以便docker-gc可以與Docker API進行交互。我們設置一個環境變數DRY_RUN = 1,以查找哪些容器和鏡像將被刪除。如果我們沒有設置這個選項,docker-gc會將他們全部刪除。這首先就驗證了docker-gc清理的很好。上述命令的輸出如下:
如果您還想使用docker-gc清理,則可以再次運行沒有DRY_RUN標誌的docker-gc來執行清理。
上述命令的輸出將告訴您docker-gc刪除的所有鏡像和容器。
docker-gc支持的選項還有其他幾個。我建議您閱讀docker-gc文檔(https://github.com/spotify/docker-gc/blob/master/README.md)以了解更多信息。
3. docker-slim:容器的魔法丸
如果擔心Docker鏡像的大小,docker-slim將會解決您的擔憂。
docker-slim實用程序使用靜態和動態分析來將大的鏡像轉變為縮略的鏡像。要使用docker-slim,您必須從Github下載其二進位文件。二進位文件可用於Linux和Mac。下載二進位文件後,將其添加到PATH中。
我創建了一個Docker圖像,例如:使用在Docker官方文檔(https://docs.docker.com/get-started/)中的應用程序friendlyhello。正如你下面所看到的鏡像的大小是194MB。
您可以看到一個簡單的應用程序,我們必須下載194 MB的數據。讓我們用docker-slim來看看它可以去除多少多餘的東西。
docker-slim實用程序將執行一系列步驟 -檢查、分析較大的鏡像,最終創建一個縮略版本的鏡像。我們來看下這個縮略版的大小。
正如你上面看到的,這個鏡像的大小被所縮減到24.9MB。您可以啟動容器,並以相同的方式運行。docker-slim實用程序適用於Java,Python,Ruby和Node.js應用程序。
嘗試一下,看看你有沒有收穫。在我的個人項目中,我發現它在大多數情況下都有效。
點擊展開全文
※物聯網浪潮之下,前端工程師如何迎刃而上?
※專訪架構師陳波:微博近幾年的架構演進和架構師的技能素養
※RocketMQ開源二三事,偵破萬億級數據容量背後的架構實踐
※淺談分布式事務控制在銀行應用的實現
TAG:CSDN |
※你竟然不知道這六款Python開發常用的IDE工具?
※WPA2中的WiFi「Krack」漏洞:你需要知道的
※穿Vetements tabi的人從不需要知道Martin Margiela是誰
※你聽過他的歌,遺憾的是你不知道唱它的Denny white
※Dad Shoe你只知道Balenciaga?adidas Twinstrike ADV新配色帶來驚喜!
※Dad Shoe你只知道Balenciaga? adidas Twinstrike ADV新配色帶來驚喜!
※你知道balance嗎?
※關於madness×converse 那些你不知道的小事
※iPhone X和三星note8看完才知道買哪個
※你知道Angelababy的名字有什麼含義嗎?
※PhoneX和三星Note8真機實際對比,看完才知道買哪個
※iPhoneX和三星Note8看完才知道買哪個
※iPhone X的這3個黑科技你還不知道?
※Aoife,Siobhan,Ciara……你知道這些愛爾蘭名字都怎麼讀,是啥意思么?
※魅族Pro7:看看iPhoneX,就知道為什麼會失敗
※get√盤點那些你不知道的iPhone小技巧
※iPhone隱藏小技巧,99%的果粉都不知道
※你不知道的 nike與Supreme 聯名,那是一個潮字了得
※真正的Supreme粉絲,你一定會知道他
※知道這些小技巧,你的IPhone更好用了