<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Docker使用的優點和十一條使用守則的詳細概述

馬哥Linux運維 ? 來源:未知 ? 作者:易水寒 ? 2018-06-02 10:28 ? 次閱讀

很多人最終還是決定使用 Docker 解決問題。 Docker 的優點很多,比如:

一體化——將操作系統、庫版本、配置文件、應用程序等全部打包裝在容器里。從而保證 QA 所測試的鏡像 (image) 會攜帶同樣的行為到達生產環境。

輕量——內存占用極小,只為主要過程分配內存。

快讀——一鍵啟動,就像啟動常見的 linux 過程一樣快。

盡管如此,眾多用戶仍然只是把容器當做常見的虛擬機,而忘記了容器的一個重要特性:

用后即棄

正因為這一特點,一些用戶需要改變他們對容器的觀念,為了更好的使用與發揮 Docker 容器的價值,有一些事情是絕對不應該做的:

不要在容器(container)中存儲數據 容器可能會被中斷、被替換或遭到破壞。在容器中運行的 1.0 版應用程序很容易就會被 1.1 版取代,而不會對數據造成影響或導致數據丟失。因此,如果需要存儲數據,請存儲在卷 (volume) 中。在這一情況下,還應注意兩個容器是否會在同一個卷上寫入數據,這將導致損壞。請確保應用程序適用于寫入共享的數據存儲。

不要分兩部分傳送應用程序 有些人把容器當作虛擬機,所以他們大多會認為,應該將應用程序部署到現有正在運行的容器中。在需要不斷部署和調試的開發階段,可能確實如此;但對于 QA 和生產的持續交付 (CD) 渠道,應用程序應當是鏡像的一部分。切記:容器轉瞬即逝。

不要創建大尺寸鏡像 大尺寸的鏡像難以分配。請確保僅使用必需文件和庫來運行應用程序。不要安裝不必要的數據包,也不要運行“更新”(yum update),這些操作會把大量文件下載到新的鏡像層。

不要使用單層鏡像 為了有效利用多層文件系統,請始終為操作系統創建屬于自己的基本鏡像層,然后為用戶名定義創建一個層,為運行時安裝創建一個層,為配置創建一個層,最后再為應用程序創建一個層。這樣,重新創建、管理和分配鏡像就會容易些。

不要從正在運行的容器中創建鏡像 換句話說,不要使用"docker commit"命令來創建鏡像。這一鏡像創建方法不可復制,因此應完全避免使用。請始終使用 Dockerfile 或其他任何可完全復制的 S21(從源代碼到鏡像)方法,如此一來,如果存儲在源代碼控制存儲庫 (GIT) 中,就可以跟蹤 Dockerfile 的變更情況。

不要只使用“最新版標簽 最新版標簽就像 Maven 用戶的“快照”(SNAPSHOT) 一樣。容器具有多層文件系統這一基本特征,所以我們鼓勵使用標簽。相信誰也不愿意在構建了幾個月的鏡像后,突然發現應用程序因為父層(即 Dockerfile 中的 FROM)被新版本取代而無法運行(新版本無法向后兼容或從構建緩存中檢索的“最新“版有誤)這樣的意外吧?在生產過程中部署容器時也應避免使用”最新版“標簽,這是因為無法跟蹤當前運行的鏡像版本。

不要在單個容器中運行一個以上進程 容器只運行一個進程(HTTP 守護進程、應用程序服務器、數據庫)時效果最佳,但如果運行一個以上進程,在管理和檢索日志以及單獨更新進程時就會遇到很多麻煩。

不要在鏡像中存儲證書及使用環境變量。 不要在鏡像中對任何用戶名/密碼進行硬編碼操作。請使用環境變量從容器外部檢索信息。Postgres 鏡像就是這一原理的極佳詮釋。

不要以 root 權限運行進程 “默認情況下,Docker 容器以 root 用戶權限運行。(……)隨著 Docker 技術日趨成熟,能夠使用的安全默認選項越來越多。目前,要求 root 對其他用戶來說較為危險,另外,不是所有環境都能夠使用 root。鏡像應使用 USER 指令來為容器的運行指定非 root 用戶?!保ㄕ浴禗ocker 鏡像作者指南》(Guidance for Docker Image Authors))

不要依賴 IP 地址 每個容器都有自己的內部 IP 地址,如果啟動然后停止容器,內部 IP 地址可能會發生變化。如果你的應用程序或微服務需要和另一個容器進行通信,請使用環境變量在容器之間傳遞相應的主機名和端口。

監控容器 Docker 監控已經越來越受到開發者們的重視,實時監控 Docker 的方法,這里推薦 Cloudinsight。 不同于一些需要自寫腳本的監控手段,Cloudinsight 作為一家免費的 SaaS 服務,能夠一鍵監控 Docker,且擁有很棒的可視化界面。除此之外,Cloudinsight 還支持多種操作系統、數據庫等的監控,能夠一體化展示所有被監控的系統基礎組件的性能數據。

遵守這十一條,你就是 Docker 高手了

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 一體化
    +關注

    關注

    0

    文章

    194

    瀏覽量

    14290
  • root
    +關注

    關注

    1

    文章

    84

    瀏覽量

    21264
  • docker容器
    +關注

    關注

    0

    文章

    28

    瀏覽量

    3290

原文標題:寫給新手的十一條 Docker 守則

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    430單片機用戶守則

    430單片機用戶守則
    發表于 07-09 10:00

    docker安裝流程概述

    docker--鏡像、容器管理
    發表于 07-17 10:42

    Docker總結

    【本人禿頂程序員】阿里P7吐血總結最為詳細Docker
    發表于 08-23 10:48

    docker中安裝nginx的詳細過程

    Centos7安裝nginx(二)之docker中安裝nginx
    發表于 10-23 17:10

    物聯網安全的守則

    了解物聯網安全的八大守則
    發表于 01-22 06:13

    Docker是什么?

    Edge技術的重要組成部分。那么Docker到底有什么本事,能在Iot領域如此重要呢?舉個例子,無論你是什么CPU,什么操作系統,什么硬件條件,下面一條命令,就可以讓你的PC,嵌入式設備,跑上一...
    發表于 10-28 07:11

    淺析Docker鏡像本地存儲機制及容器啟動原理

    鏡像各層內容及對應大小,每層對應著 Dockerfile 中的一條指令。Docker 鏡像默認存儲在 /var/lib/docker/《storage-driver》中,可通過 DOCKER
    發表于 10-19 14:17 ?2361次閱讀

    Docker + 嵌入式開發

    Edge技術的重要組成部分。那么Docker到底有什么本事,能在Iot領域如此重要呢?舉個例子,無論你是什么CPU,什么操作系統,什么硬件條件,下面一條命令,就可以讓你的PC,嵌入式設備,跑上一...
    發表于 10-20 21:36 ?12次下載
    <b class='flag-5'>Docker</b> + 嵌入式開發

    Docker鏡像的詳細講解

    本文是對 Docker 鏡像的詳細講解,講解了如何安裝 Docker、配置 Docker 鏡像加速以及操作 Docker 鏡像。希望對大家有
    的頭像 發表于 08-02 10:00 ?1850次閱讀

    docker 搜索鏡像,docker查看鏡像詳細信息(docker下載鏡像命令)

    Docker Hub是集中管理的Docker鏡像注冊中心。通過Docker 用戶可以在注冊中心搜索、下載和使用CLI命令行工具中的鏡像。以下是常用的Docker命令搜索鏡像:
    的頭像 發表于 07-19 09:46 ?1169次閱讀

    docker微服務架構實戰

    的容器化技術,為微服務架構的實施提供了強大的支持。本文將介紹Docker微服務架構的實戰經驗,包括Docker概述、微服務架構的設計原則以及實際應用中的具體實踐。 一、Docker
    的頭像 發表于 11-23 09:26 ?340次閱讀

    docker exec命令的使用方法

    有用的命令,用于在正在運行的容器中執行命令。 在本文中,我將詳細介紹Docker exec命令的使用方法,包括命令格式、參數選項、使用示例等。 Docker exec命令格式 Docker
    的頭像 發表于 11-23 09:33 ?810次閱讀

    linux關閉docker的命令

    在 Linux 系統中,關閉 Docker 的操作可以通過以下多種方式進行。本文將詳細講解每一種方式,并提供示例代碼和命令,以幫助讀者更好地理解和實踐。 使用 docker 命令 最常用的方法
    的頭像 發表于 11-23 09:39 ?1568次閱讀

    docker進入容器的方法有哪些

    Docker是一種流行的容器化平臺,它能夠快速構建、交付和運行應用程序。在使用Docker時,我們經常需要進入容器進行調試、管理和運行命令等操作。本文將詳細介紹Docker進入容器的各
    的頭像 發表于 11-23 09:45 ?4403次閱讀

    docker核心組件有哪些

    、Docker Image、Docker Container、Docker Registry 和 Docker Compose。以下將詳細
    的頭像 發表于 11-23 09:47 ?851次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>