自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

你應(yīng)該知道的5個Docker工具

云計算
你可以在網(wǎng)上找到大量炫酷的 Docker 工具,并且大部分是開源的,可以通過Github訪問。在過去的兩年里,我開始在開發(fā)項目中大量使用Docker。當(dāng)你開始使用Docker,你會發(fā)現(xiàn)它比你想象的還要適合于更多的使用場景。你也許希望Docker能夠做的更多,當(dāng)然你不會失望。

你可以在網(wǎng)上找到大量炫酷的 Docker 工具,并且大部分是開源的,可以通過Github訪問。在過去的兩年里,我開始在開發(fā)項目中大量使用Docker。當(dāng)你開始使用Docker,你會發(fā)現(xiàn)它比你想象的還要適合于更多的使用場景。你也許希望Docker能夠做的更多,當(dāng)然你不會失望。

Docker社區(qū)非?;钴S,每天都會推出大量有用的工具。要想持續(xù)追蹤社區(qū)中發(fā)生的各項創(chuàng)新其實非常困難。為了幫助你,我收集了一些每天在日常工作中使用、令人感興趣并且十分有用的Docker工具。這些工具消除了大量手工工作,讓我更有生產(chǎn)力。

讓我們來看看這些在我的容器化之旅中非常有用的工具吧。

1. watchtower : 自動更新Docker容器

瞭望塔(Watchtower)能夠監(jiān)控正在運行的容器,觀察自容器啟動以來對鏡像的任何修改。當(dāng)瞭望塔檢測到一個鏡像發(fā)生改變,它會自動使用新鏡像進行重啟容器。我在本地開發(fā)環(huán)境使用該工具,以便我能夠使用***構(gòu)建的鏡像。

瞭望塔本身也被打包為一個Docker鏡像,你可以使用運行其他容器的方式運行該工具。要啟動瞭望塔,你可以使用以下命令:

你應(yīng)該知道的5個Docker工具

在上述命令中,我們啟動了瞭望塔容器,并掛載了文件 /var/run/docker.sock 。這是必須的,以便該工具能夠與Docker后臺API進行交互。此處使用選項間隔( interval)為 30秒。該參數(shù)定義了工具輪詢的間隔。瞭望塔支持的更多選項見 文檔 .

現(xiàn)在啟動一個瞭望塔能夠監(jiān)控的容器:

你應(yīng)該知道的5個Docker工具

此時,瞭望塔將對 friendlyhello 容器進行監(jiān)控。當(dāng)我將新鏡像提交到Docker Hub時,瞭望塔在下次運行時將會檢測到已有一個新的鏡像。它會優(yōu)雅的停止容器,并使用新鏡像自動啟動新容器。它將一些參數(shù)傳遞給run命令,換句話說,容器將使用 4000:80發(fā)布端口。

默認(rèn)情況下, 瞭望塔會輪詢Docker Hub官網(wǎng)查找更新的鏡像。如欲使工具輪詢私有Docker倉庫,需要配置以下環(huán)境變量:REPO_USER 和 REPO_PASS。

要先了解更多,推薦閱讀 瞭望塔文檔 。

2. docker-gc : 容器和鏡像垃圾收集

docker-gc工具能夠幫助你清理Docker宿主機,刪除不再需要的容器和鏡像。它會移除存在超過1小時的所有容器。同時,它會刪除不屬于任何遺留容器的鏡像。

你可以把docker-gc當(dāng)做腳本或容器使用。這里,我們作為容器運行docker-gc。使用docker-gc查找所有可以刪除的容器和鏡像,命令如下:

你應(yīng)該知道的5個Docker工具

上述命令中,我們加載了Docker套接字文件,以便docker-gc能夠與Docker API交互。我們傳遞一個環(huán)境變量DRY_RUN=1來查找將被刪除的容器和鏡像。如果不提供該參數(shù),docker-gc會刪除所有容器和鏡像。***事先確認(rèn)docker-gc要刪除的內(nèi)容。上述命令輸出示意如下:

你應(yīng)該知道的5個Docker工具

如果你同意docker-gc清空方案, 可以不使用DRY_RUN再次運行docker-gc執(zhí)行清空操作。

你應(yīng)該知道的5個Docker工具

上述命令的輸出可以告訴您 docker-gc 刪除的所有鏡像和容器。

docker-gc還支持其他一些選項,建議閱讀 docker-gc文檔 以了解更多。

3. docker-slim : 面向容器的神奇減肥藥丸

如果你擔(dān)心您Docker鏡像的大小,docker-slim可以打消您的一切顧慮。

docker-slim工具使用靜態(tài)和動態(tài)分析方法來為你臃腫的鏡像瘦身。要使用docker-slim,可以從 Github 下載Linux或者Mac的二進制安裝包. 一旦你成功下載,并加入到你的系統(tǒng)PATH變量中。

為了舉例,我參考 Docker官方文檔 創(chuàng)建了一個Docker鏡像 friendlyhello , 鏡像大小為194MB(如下所示):

你應(yīng)該知道的5個Docker工具

在這個簡單的應(yīng)用中,我們已經(jīng)下載了194MB的數(shù)據(jù)。讓我們使用docker-slim工具來看看能夠瘦身多少吧。

你應(yīng)該知道的5個Docker工具

docker-slim工具將執(zhí)行一系列的檢查和裝配步驟,最終創(chuàng)建一個瘦身版本。讓我們來看看搜身版本的大小:

你應(yīng)該知道的5個Docker工具

如上圖所示,影像大小被減少到24.9 MB。你可以啟動該容器,以同樣的方式運行。docker-slim工具支持Java, Python, Ruby和Node.js應(yīng)用。

自己試試看能夠瘦身多少。在我的個人項目中,我發(fā)現(xiàn)在大多數(shù)情況下都能夠正常工作。您可以從 docker-slim文檔 學(xué)到更多。

4. rocker : 超越 Dockerfile 限制

大多數(shù)使用Docker的開發(fā)者都使用Dockerfile構(gòu)建鏡像。Dockerfile是一種聲明方式,在命令行定義所有的命令,以編配一個鏡像。

Rocker 為Dockerfile指令集增加了新的指令。Rocker由 Grammarly 創(chuàng)建,以解決采用Dockerfile格式遇到的一些問題。Grammarly團隊寫了一個 博客 ,深度剖析和解釋了創(chuàng)建它的原因。我建議您閱讀它以更好的理解Rocker。在博文中,他們主要強調(diào)了2個問題:

  1. Docker鏡像的大小.
  2. 緩慢的構(gòu)建速度.

該博文也提到了Rocker增加的幾個新指令。參考 Rocker文檔 以學(xué)習(xí)所有Rocker支持的指令。

  1. MOUNT 用于共享不同構(gòu)建的卷,以便能夠被依賴管理工具重用。
  2. FROM 指令在Dockerfile也存在。Rocker使得可以添加多個FROM指令。 這意味著您能夠從單個Rockerfile中創(chuàng)建多個鏡像。***批指令用于構(gòu)建產(chǎn)品所有的依賴;第二批指令用于構(gòu)建產(chǎn)品;這能夠極大的降低鏡像大小。
  3. TAG 用于在構(gòu)建的不同階段標(biāo)識鏡像,這意味著您不必手動為每個鏡像打標(biāo)簽。
  4. PUSH 用于將鏡像推送到鏡像倉庫。
  5. ATTACH 允許您能夠交互的運行一個中間步驟,主要用于調(diào)試。

要使用Rocker,首先必須安裝。對Mac用戶來說,使用brew安裝命令非常簡單:

你應(yīng)該知道的5個Docker工具

一旦完成安裝,您就可以使用Rocker傳遞Rockerfile來構(gòu)建鏡像:

你應(yīng)該知道的5個Docker工具

要構(gòu)建鏡像并推送到Docker Hub,可以運行以下命令:

你應(yīng)該知道的5個Docker工具

Rocker有很多功能,要知道更多請參考 文檔 .

5. ctop : 容器的類Top界面

ctop是我最近使用的一個工具,它能夠提供多個容器的實時指標(biāo)視圖。如果您是一個Mac用戶,可以使用brew安裝:

你應(yīng)該知道的5個Docker工具

一旦完成安裝,你可以啟動ctop。它只需要配置DOCKER_HOST環(huán)境變量。

要查看所有容器的狀態(tài),可以直接運行 ctop 命令。

你應(yīng)該知道的5個Docker工具

僅查看當(dāng)前正在運行的容器的狀態(tài),可以使用 ctop -a 命令。

ctop是一個簡單并且非常有用的工具,能夠幫助您了解主機上運行的容器。可以閱讀 ctop文檔 了解更多ctop的知識。

這些都是我發(fā)現(xiàn)的非常有用的Docker工具。您是否也在日常工作中用到其他的Docker工具呢?如果是這樣的話,請在下面的評論區(qū)留言以讓我們知曉。

責(zé)任編輯:未麗燕 來源: 可譯網(wǎng)
相關(guān)推薦

2020-04-03 19:21:59

JavaScript編程語言開發(fā)

2018-10-17 09:00:00

JavaScript工具前端

2013-05-20 10:14:42

軟件工具項目工具開發(fā)工具

2024-12-04 10:08:05

2016-02-25 10:58:01

Live Linux桌面發(fā)行版

2024-11-12 14:56:07

2020-07-20 15:15:06

Swift函數(shù)代碼

2015-06-15 09:49:22

Docker開源平臺虛擬化容器

2010-10-19 15:31:44

Java

2020-11-18 08:15:39

TypeScript設(shè)計模式

2022-06-29 10:06:27

Webpack優(yōu)化技巧前端

2020-10-18 07:37:24

微前端框架前端

2011-03-25 15:56:58

2019-06-03 08:04:43

Apache服務(wù)器命令

2023-01-10 09:24:47

Python編程語言

2019-06-28 08:56:35

編程語言框架工具

2018-12-20 14:28:45

程序員開源支付系統(tǒng)

2013-01-09 13:55:43

2020-04-29 14:30:35

HTTPHTTPS前端

2017-07-06 09:20:51

點贊
收藏

51CTO技術(shù)棧公眾號