# 六角鼠年鐵人賽 Week 8 - Docker 容器效能調整與Image匯入匯出 ==大家好,我是 "為了拿到金角獎盃而努力著" 的文毅青年 - Kai== ### 步出夏門行·觀滄海 曹操 :::info 東臨碣石,以觀滄海。 水何澹澹,山島竦峙。 樹木叢生,百草豐茂。 秋風蕭瑟,洪波涌起。 日月之行,若出其中。 星漢燦爛,若出其裏。 幸甚至哉,歌以詠志。 ::: 這一篇文就來簡單分享一些 Container 效能的設定與發布方式。 ## CPU 分享與限制 給予 Container CPU 權重的調整,以利資源可以有效利用。 畢竟你不會想看到以下這種狀況: |伺服器代號|運算量|分配CPU| |---|---|---| |A|100萬次/秒|25%| |B|50萬次/秒|25%| |C|10萬次/秒|25%| |D|1萬次/秒|25%| 我們最希望看到的是以下這種狀況: |伺服器代號|運算量|分配CPU| |---|---|---| |A|100萬次/秒|70%| |B|50萬次/秒|20%| |C|10萬次/秒|7%| |D|1萬次/秒|3%| ==數字為舉例,請勿過度認真== 我們可以在啟動 Container 的時候加入以下參數處理這種事情 ```shell= docker run -it -c [2-1024] [ImageName] docker run -it --cpu-shares [2-1024] [ImageName] ``` 甚至我們能夠限制 Container 只能選用我們設定的CPU核心 ```shell= docker run -it --cpuset=1,3,5 [ImageName] ``` 以上述為例子,我們將會限定該 Container 只能使用 第 1, 3, 5 個核心 ## 記憶體設定 除了 CPU 以外,我們當然可以設定 Container 占用的記憶體資源。 ```shell= docker run -it -m 2048M [ImageName] ``` 上述指令可以將 Container 設限最多只能使用 2048 MB 的記憶體使用量,這對於諸多微服務的程式架構來說,可以讓系統更容易平衡各項目的負荷。 上述是兩個基本的針對效能的設定 ## Image Export 若要將一個或多個 Image 進行匯出的功能,請使用下列指令 ```shell= docker image save --output=[FileName].tar [ImageName] docker container export --output=[FileName].tar [Container ID] ``` 上述第一種是針對 Image 匯出成 tarball,第二種會匯出 Container (不確定運行中和運行中並有修正部分設定的Container 是否可以進行匯出) 匯出之後的 tarball 就可以隨身攜帶,或是轉傳給其他人去使用了! ## Image Import 而在學會匯出之後,拿到別人給的 Image tarball,就應該要匯入到自己的 Docker 開起來使用了。 我們用下列的指令處理: ```shell= docker image import [FileName].tar [ImageName]:imported ``` Docker 便會幫我們把 tarball解開並給予我們想給予的 ImageName 以便後續使用了! ## 結語 :::danger 接下去的篇章,Kai 在 Docker 的部分會告一個段落。 往後的章節會開啟全新的主題,目前計畫是學習 SpringBoot 的各式好用框架,但不確定中途有沒有可能岔入 python 或 NodeJS 的學習,也有可能是 SpirngBoot 接下去的 SpringCloud 等等。 希望這幾篇可以幫助到一些學習 Docker 的人~ 下一篇文章 [六角鼠年鐵人賽 Week 9 - SpringBoot - Info](/NKtEphKwTEWLyfzd-YkRjQ) ::: 首頁 [Kai 個人技術 Hackmd](/2G-RoB0QTrKzkftH2uLueA) ###### tags: `Docker`,`w3HexSchool`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up