by Devin Yang

建立於: 3年前 ( 更新: 2年前 )

Update 2022-11-06
有個HTML5圖形化測速軟體,有興趣可以試看看,也支援Docker啟動,使用上並不難。
HTML5 Internet Speed Test.
這個軟體最大的優點可以拿來驗證,別人連到您主機的速度。
我的經驗透過這個軟體測出內網的網路線有問題,沒法跑到1G,
更換網路線後就跑1G了,相當好用。😄

https://openspeedtest.com/

==== 下方為舊資料了 ===
如何簡單的用Docker建立internet命令列的測速程式呢?

這裡我們使用python的程式speedtest-cli

會用Docker主要用例,例如我想要在我的NAS內進行測速,
雖然我的NAS內有python,但沒有pip指令,這時用Docker感覺上安全很多,
當然前題您的NAS需能跑Docker:)。

或者,我在MacOS的環境,我不想安裝speedtest-cli到我的MacOS中。

這時用Docker簡單的自建簡單的執行環境還滿不錯的。

一、首先建立Dockerfile檔案,內容如下,這個Dockerfile用來build我們自己的Image

FROM python:rc-alpine3.13
RUN pip3 install speedtest-cli
CMD speedtest-cli

這裡使用較小的image進行即可。
第一行,使用官方的python image為基礎。
第二行,透過pip3安裝speedtest-cli到image內
第三行,執行speedtest-cli,當容器建立並執行時,就會跑囉。

二、現在來build自己的image吧,請將Dockerfile放到一個自己建的目錄內執行。

docker build -t deviny/speedtest .

在這裡-t後的deviny/speedtest是我image的名稱
示意圖:

或者,您也可以貼上下方指令到終端機一行搞定,來建立名為speedtest的image。

mkdir speedtest&&cd speedtest&&docker build -t speedtest -<<EOF
FROM python:rc-alpine3.13
RUN pip3 install speedtest-cli
CMD speedtest-cli
EOF

示意圖:


三、因為我有建立Dockerhub的帳號了,所以我可以push到Dockerhub上。(選項、非必要)
這樣我在其他地方有Docker的環境就能執接跑docker run囉。

docker push deviny/speedtest

四、執行測速指令

docker run --rm deviny/speedtest

這裡的--rm代表了,執行完就刪除容器。
示意圖如下:

Testing from Chunghwa Telecom (211.72.111.169)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Chunghwa Mobile (Taipei) [1.62 km]: 5.098 ms
Testing download speed................................................................................
Download: 247.98 Mbit/s
Testing upload speed......................................................................................................
Upload: 102.39 Mbit/s


第三步中,我已將image上傳到dockerhub啦,換言之,您可以直接執行第四步中的指令就會跑囉。:)
所以我們可以加入別名,方便下次執行。

alias speedtest="docker run --rm deviny/speedtest"

如果您使用的名稱叫speedtest,指令因該如下哦 

docker run --rm speedtest


 

Tags: docker

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


polymer,docker

D-Laravel預設支援index.html了

D-Laravel的nginx環境設定預設支援index.html了,簡單說 現在除了,可以用D-Laravel跑Laravel的Project,也可以拿來跑其他的Project。 目前Apple的WebKit對Service-Workers已經是in preview了....

docker,laravel

[D-Laravel]./console node

進行Laravel開發時,有時我們會需要透過npm安裝nodejs的套件,但是偏偏我們系統中的Node又不夠新。 或許因某些因素沒法升級,例如要跑舊版的nodejs程式等。 其實我們可以透過簡單的指令,用docker,讓我們就能使用最新版本的node image來掛載host端的/sites資料夾囉。 這麼一來我們就可以隨時執行新版本的npm指令啦。

docker,dlaravel

D-Laravel 1.5.5變更說明

D-Laravel的fpm image在php 7.2.1以前是使用docker php官方的dockerfile重build的, 並且所以我可以指定了fpm的預設的owner是dlaravel,   --with-fpm-user=USER    Set the user for php-fpm to run as. (default: nobody)   --with-fpm-group=GRP    Set the group for php-fpm to run as.