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

Docker容器中應(yīng)避免的10件事

云計(jì)算
毋庸置疑,容器已經(jīng)成為企業(yè)IT基礎(chǔ)設(shè)施中必不可少的部分,它具有許多的優(yōu)點(diǎn),但容器是一次性的。那么該如何保持容器的良好效益呢?以下將介紹Docker容器中應(yīng)避免的10件事。

毋庸置疑,容器已經(jīng)成為企業(yè)IT基礎(chǔ)設(shè)施中必不可少的部分,它具有許多的優(yōu)點(diǎn),比如:

  • 第一:容器是不可變的——操作系統(tǒng),庫(kù)版本,配置,文件夾和應(yīng)用程序都包裝在容器內(nèi)。你保證在質(zhì)量檢查中測(cè)試過(guò)的同一鏡像將以相同的行為到達(dá)生產(chǎn)環(huán)境。
  • 第二:容器很輕——容器的內(nèi)存占用量很小。容器將只為主要進(jìn)程分配內(nèi)存,而不是數(shù)百或數(shù)千MB。
  • 第三:容器非常快——可以像啟動(dòng)典型Linux進(jìn)程一樣快地啟動(dòng)容器。你可以在幾秒鐘內(nèi)啟動(dòng)一個(gè)新容器,而不是幾分鐘。

但是,許多用戶仍然像對(duì)待典型虛擬機(jī)一樣對(duì)待容器,而忘記了容器具有重要的特征:即容器是一次性的。

這種特征迫使用戶改變他們對(duì)如何處理和管理容器的看法。那么該如何保持容器的最佳效益呢?以下將介紹Docker容器中應(yīng)避免的10件事。

Docker容器中應(yīng)避免的10件事

1. 不要將數(shù)據(jù)存儲(chǔ)在容器中,因?yàn)槟憧梢酝V?,銷毀或更換容器。在容器中運(yùn)行的應(yīng)用程序版本1.0應(yīng)該容易地由版本1.1替換,而不會(huì)造成任何影響或數(shù)據(jù)丟失。因此,如果需要存儲(chǔ)數(shù)據(jù),請(qǐng)批量存儲(chǔ)。在這種情況下,還應(yīng)該注意兩個(gè)容器是否在同一卷上寫入數(shù)據(jù),因?yàn)檫@可能會(huì)導(dǎo)致?lián)p壞。確保你的應(yīng)用程序是為了寫入共享數(shù)據(jù)存儲(chǔ)。

2. 不要將應(yīng)用程序分為兩部分進(jìn)行交付。有些人看到像虛擬機(jī)這樣的容器,大多數(shù)人傾向于認(rèn)為他們應(yīng)該將應(yīng)用程序部署到現(xiàn)有的運(yùn)行容器中。在開發(fā)階段,你需要不斷進(jìn)行部署和調(diào)試,這是正確的。但對(duì)于一個(gè)連續(xù)傳遞(CD)管道QA和Production,你的應(yīng)用程序應(yīng)該是鏡像的一部分。

3. 不要?jiǎng)?chuàng)建大鏡像,因?yàn)榇箸R像將很難分發(fā)。確保僅具有運(yùn)行應(yīng)用程序/進(jìn)程所需的文件和庫(kù)。不要安裝不必要的軟件包或運(yùn)行將許多文件下載到新鏡像層的“更新” 。

4. 不要使用單層鏡像,為了有效利用分層文件系統(tǒng),請(qǐng)始終為操作系統(tǒng)創(chuàng)建自己的基礎(chǔ)鏡像層,為用戶名定義創(chuàng)建另一層,為運(yùn)行時(shí)安裝創(chuàng)建另一層,為配置創(chuàng)建另一層,最后是應(yīng)用程序的另一層。重新創(chuàng)建,管理和分發(fā)鏡像將更加容易。

5. 不要從正在運(yùn)行的容器中創(chuàng)建鏡像。換句話說(shuō),不要使用“ docker commit”來(lái)創(chuàng)建鏡像。這種創(chuàng)建鏡像的方法不可復(fù)制,應(yīng)完全避免。始終使用完全可復(fù)制的Dockerfile或任何其他S2I(從源到鏡像)方法,如果將Dockerfile存儲(chǔ)在源代碼控制存儲(chǔ)庫(kù)(git)中,則可以跟蹤對(duì)Dockerfile的更改。

6. 不要只使用“最新”標(biāo)簽,對(duì)于Maven用戶,最新標(biāo)簽就像“ SNAPSHOT”一樣。由于容器的分層文件系統(tǒng)性質(zhì),因此鼓勵(lì)使用標(biāo)簽。幾個(gè)月后生成鏡像并發(fā)現(xiàn)你的應(yīng)用程序無(wú)法運(yùn)行是因?yàn)楦笇?Dockerfile中的FROM)被不兼容向后的新版本或錯(cuò)誤的新版本所取代,你不會(huì)感到驚訝從構(gòu)建緩存中檢索了“最新”版本。在生產(chǎn)環(huán)境中部署容器時(shí),也應(yīng)避免使用“最新”標(biāo)簽,因?yàn)槟銦o(wú)法跟蹤正在運(yùn)行哪個(gè)版本的鏡像。

7. 不要在單個(gè)容器中運(yùn)行多個(gè)進(jìn)程。容器非常適合運(yùn)行單個(gè)進(jìn)程(http守護(hù)程序,應(yīng)用程序服務(wù)器,數(shù)據(jù)庫(kù)),但是如果有多個(gè)進(jìn)程,則管理起來(lái)可能會(huì)遇到更多麻煩,檢索日志,并分別更新流程。

8. 不要將憑據(jù)存儲(chǔ)在鏡像中。使用環(huán)境變量,你不想對(duì)鏡像中的任何用戶名/密碼進(jìn)行硬編碼。使用環(huán)境變量從容器外部檢索該信息。這個(gè)原理的一個(gè)很好的例子是Postgres鏡像。

9. 不要以root用戶身份運(yùn)行進(jìn)程。“默認(rèn)情況下,docker容器以root用戶身份運(yùn)行。隨著docker的成熟,可能會(huì)提供更多安全的默認(rèn)選項(xiàng)。目前,要求root用戶對(duì)其他人是危險(xiǎn)的,可能并非在所有環(huán)境中都可用。你的鏡像應(yīng)使用USER指令為運(yùn)行容器指定一個(gè)非root用戶。

10. 不要依賴IP地址。每個(gè)容器都有自己的內(nèi)部IP地址,如果你啟動(dòng)和停止容器,它可能會(huì)更改。如果應(yīng)用程序或微服務(wù)需要與另一個(gè)容器通信,請(qǐng)使用環(huán)境變量將正確的主機(jī)名和端口從一個(gè)容器傳遞到另一個(gè)容器。

 

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2012-08-03 14:48:55

Outlook.com微軟

2017-11-17 05:09:46

2012-04-19 10:03:18

微軟Windows 8

2020-05-08 15:30:42

PostgreSQL數(shù)據(jù)庫(kù)數(shù)據(jù)

2011-08-31 09:18:07

程序員

2020-01-06 10:21:54

容器微服務(wù)架構(gòu)

2009-04-24 08:17:15

MySpaceCEO社交網(wǎng)站

2016-11-17 08:25:03

CentOS內(nèi)核服務(wù)器

2010-11-01 11:23:16

2011-12-29 09:54:07

數(shù)據(jù)安全

2024-09-25 08:00:00

領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)軟件開發(fā)

2018-08-01 17:39:17

LoRaWANNB-IoTIoT

2022-05-13 09:00:00

企業(yè)初創(chuàng)公司技術(shù)債務(wù)

2011-08-11 10:47:23

2013-11-08 10:42:31

Ubuntu 13.1

2021-06-11 10:03:34

數(shù)據(jù)泄露網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2012-09-10 10:26:22

工作工作習(xí)慣調(diào)整心態(tài)

2012-07-22 15:22:17

加班

2009-09-29 13:25:04

Ubuntu操作系統(tǒng)linux

2022-05-10 10:39:51

初創(chuàng)企業(yè)技術(shù)債務(wù)
點(diǎn)贊
收藏

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