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

Dockerfile最佳實踐(二):Docker變化后你應(yīng)當(dāng)做什么

云計算
之前我們發(fā)布過一篇關(guān)于Dockerfile最佳實踐的文章。上一篇會繼續(xù)保留造福Docker新手,這篇文章將介紹Docker有什么變化以及你現(xiàn)在應(yīng)當(dāng)做什么。

之前我們發(fā)布過一篇關(guān)于Dockerfile最佳實踐的文章。上一篇會繼續(xù)保留造福Docker新手,這篇文章將介紹Docker有什么變化以及你現(xiàn)在應(yīng)當(dāng)做什么。

1:不要開機初始化

容器模型是進程而不是機器。即使你認(rèn)為你需要做這一點,你可能錯了。

2:可信任構(gòu)建

即使你不喜歡這個題目但它是很棒的一功能。我把大部分gihub倉庫添加到可信任構(gòu)建,這樣當(dāng)我提交我的新的等待索引后的鏡象。另外,我不必再創(chuàng)建單獨的Dockerfile倉庫來與他人分享,它們都在同一個地方。

請記住,這不是你為嘗試新東西的操場。在你推送之前本地先構(gòu)建一下。Docker可以確保你在本地構(gòu)建和運行的會是同樣的當(dāng)你把他們推送到其他任何地方。本地開發(fā)和測試、提交和推送、以及等待索引上的官方鏡像都是建立在可信任構(gòu)建的基礎(chǔ)之上的。

3:不要在構(gòu)建中升級版本

更新將在基礎(chǔ)鏡像里你不需要在您的容器內(nèi)來apt-get upgrade更新。因為隔離情況下往往會失敗,如果更新時試圖修改init或改變?nèi)萜鲀?nèi)的設(shè)備。它還可能產(chǎn)生不一致的鏡像,因為你不再有你的應(yīng)用程序該如何運行以及包含在鏡像中依賴的哪種版本的正確源文件。

如果有基礎(chǔ)鏡像需要的安全更新,那么讓上游的知道這樣他們可以給大家更新,并確保你的構(gòu)建的一致性。

4:使用小型基礎(chǔ)鏡像

有些鏡像比其他的更臃腫。我建議使用debian:jessie作為你的基礎(chǔ)鏡像。如果您熟悉ubuntu,你會在debian發(fā)現(xiàn)一個更輕便更幸福的家。此鏡像不但小巧,而且不包含任何不必要的腫脹的東西。

5:使用特定的標(biāo)簽

對與你的基礎(chǔ)鏡像這是非常重要的。Dockerfile中FROM應(yīng)始終包含依賴的基礎(chǔ)鏡像的完整倉庫名和標(biāo)簽。比如說FROM debian:jessie而不僅僅是FROM debian。

6:常見指令組合

您的apt-get update應(yīng)該與apt-get install組合。此外,你應(yīng)該采取\的優(yōu)勢使用多行來進行安裝。

  1. #Dockerfile for https://index.docker.io/u/crosbymichael/python/  
  2. FROM debian:jessie 
  3.  
  4. RUN apt-get update && apt-get install -y \ 
  5. git \ 
  6. libxml2-dev \ 
  7. python \ 
  8. build-essential \ 
  9. make \ 
  10. gcc \ 
  11. python-dev \ 
  12. locales \ 
  13. python-pip 
  14.  
  15. RUN dpkg-reconfigure locales && \ 
  16. locale-gen C.UTF-8 && \ 
  17. /usr/sbin/update-locale LANG=C.UTF-8 
  18.  
  19. ENV LC_ALL C.UTF-8 

謹(jǐn)記層和緩存都是不錯的。不要害怕過多的層因為緩存是大救星。當(dāng)然,你應(yīng)當(dāng)盡量使用上游的包。

7:使用自己的基礎(chǔ)鏡像

我不是在談?wù)撨\行debbootstrap來制作自己的debian。我說的是,如果你要運行python應(yīng)用程序需要有一個python基礎(chǔ)鏡像。前面例子中Dockerfile用來構(gòu)建crosbymichael/python鏡像,它用于許多其他鏡像來運行python應(yīng)用程序。

  1. FROM crosbymichael/python 
  2.  
  3. RUN pip install butterfly 
  4. RUN echo "root\nroot\n" | passwd root 
  5.  
  6. EXPOSE 9191 
  7. ENTRYPOINT ["butterfly.server.py"
  8. CMD ["--port=9191""--host=0.0.0.0"

另一個:

  1. FROM crosbymichael/python 
  2.  
  3. RUN pip install --upgrade youtube_dl && mkdir /download 
  4. WORKDIR /download 
  5. ENTRYPOINT ["youtube-dl"
  6. CMD ["--help"]

正如你看到的這使得使用你的基礎(chǔ)鏡像非常小,從而使你集中精力在應(yīng)用程序上。

讓我知道你在想什么或者如果您有任何其它問題可以在評論中留言。

原文鏈接:http://dockerone.com/article/132

責(zé)任編輯:Ophira 來源: dockerone
相關(guān)推薦

2023-07-25 11:22:31

2023-11-28 07:57:04

Dockerfile指令

2015-09-15 10:44:13

DockerDocker實踐企業(yè)IT

2015-05-13 11:20:02

DockerDocker實踐者PaaS

2018-04-20 15:24:55

DockerfileDocker鏡像

2017-03-28 19:57:43

DevOpsIT框架

2017-07-27 09:53:34

spring AopspringCIO

2010-11-18 11:01:49

面試

2019-07-29 10:51:12

Linux操作系統(tǒng)MySQL

2023-08-04 08:20:56

DockerfileDocker工具

2009-02-27 09:37:17

面試技巧求職

2014-09-30 09:38:35

2023-07-21 01:12:30

Reactfalse?變量

2011-08-18 11:05:21

jQuery

2024-01-05 09:08:48

代碼服務(wù)管理

2024-04-09 13:16:21

Rust命名規(guī)范

2024-05-23 08:32:48

2011-02-14 10:21:10

Ubuntu安裝

2015-05-18 11:22:22

開發(fā)者Docker應(yīng)用LXC

2014-11-19 10:08:47

點贊
收藏

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