在生產環境中使用docker ,往往需要對資料進行持久化,或者需要在多個容器之間進行
資料共享,這必然涉及容器的資料管理操作。
容器中的管理資料主要有兩種方式:
口資料卷( data volumes ) : 容器內資料直接對映到本地主機環境;
口資料卷容器( data volume containers ) : 使用特定容器維護資料卷。
6.1資料卷
資料卷( data volumes ) 是乙個可供容器使用的特殊目錄,它將主機作業系統目錄直接對映進容器,類似於linux 中的mount 行為。
資料卷可以提供很多有用的特性:
口資料卷可以在容器之間共享和重用,容器間傳遞資料將變得高效與方便;
口對資料卷內資料的修改會立馬生效,無論是容器內操作還是本地操作;
口對資料卷的更新不會影響映象,解摘開應用和資料;
資料捲會一直存在,直到沒有容器使用,可以安全地解除安裝它。
1. 建立資料卷
docker volume create -d local test
此時,檢視/var/lib/docker/volumes 路徑下,會發現所建立的資料卷位置。
2 繫結資料卷
在建立容器時將主機本地的任意路徑掛載到容器內作為資料卷。
在用docker [container] run命令的時候,可以使用- mount 選項來使用資料卷。
- mount 選項支援三種型別的資料卷,包括:
口volume : 普通資料卷,對映到主機/var/ lib /docke r /vo lumes 路徑下;
口bind :繫結資料卷,對映到主機指定路徑下;
口tmpfs :臨時資料卷,只存在於記憶體中。
6.2 資料卷容器
如果使用者需要在多個容器之間共享一些持續更新的資料,最簡單的方式是使用資料卷容器。資料卷容器也是乙個容器,但是它的目的是專門提供資料卷給其他容器掛載。
6.3 利用資料卷容器來遷移資料
可以利用資料卷容器對其中的資料卷進行備份、恢復,以實現資料的遷移。
埠對映與容器互聯
docker 除了通過網路訪間外, 還提供了兩個很方便的功能來滿足服務訪問的基本需求:乙個是允許對映容器內應用的服務埠到本地宿主主機;另乙個是互聯機制實現多個容器間通過容器名來快速訪問。
1從外部訪問容器應用
在啟動容器的時候, 如果不指定對應引數, 在容器外部是無法通過網路來訪問容器內的網路應用和服務的。
當容器中執行一些網路應用, 要讓外部訪問這些應用時, 可以通過-p或-p引數來指定埠對映。當使用平(大寫的)標記時, docker 會隨機對映乙個49000?49900 的埠到內部容器開放的網路埠。
-p (小寫的)則可以指定要對映的埠,並且,在乙個指定埠上只可以繫結乙個容器。
2對映所有介面位址
3對映到指定位址的指定埠
4對映到指定位址的任意埠
使用ip::containerport繫結localhost的任意埠到容器的5000埠,本地主機會自動分配乙個埠:
容器有自己的內部網路和ip位址,使用docker [container) inspect+容器id可以獲取容器的具體資訊。
7.2 互聯機制實現便捷互訪
容器的互聯(iinking)是一種讓多個容器中的應用進行快速互動的方式。它會在源和接收容器之間建立連線關係,接收容器可以通過容器名快速訪問到源容器,而不用指定具體的ip位址。
1自定義容器命名
2. 容器互聯
docker 相當於在兩個互聯的容器之間建立了乙個虛機通道, 而且不用對映它們的埠到宿主主機上。在啟動db 容器的時候並沒有使用-p 和-p 標記,從而避免了暴露資料庫服務埠到外部網路上。
使用dockerfile建立映象
dockerfile 是乙個文字格式的配置檔案, 使用者可以使用dockerfile 來快速建立自定義的映象
docker 首次創造了一種簡單易行並且覆蓋應用全生命週期的工作流。使用者可以通過簡單的指令或restful api 來拉取、打包、執行和維護容器。這種簡化從根本上降低了應用程式部署的難度,極大地提高了應用執行時環境的部署與維護的效率。使用者可以不依賴類似於ansible 、chef、puppet 這類配置管理和發布系統,不需要一次部署中同時關注基礎系統與軟
件的安裝配置,以及應用的安裝除錯。
讀書筆記 《docker入門技術與實戰》第22章
第23 章docker 三劍客之machine 第24 章docker 三劍客之compose 第25 章docker 三劍客之swarm 第26 章mesos一一優秀的集群資源排程平台 第27 章kubemetes 一生產級容器集群平台 machine 專案是docker 官方的開源專案,負責實現...
讀書筆記 Docker與容器安全
docker能否大規模用於生產環境,尤其是公有雲環境,就在於docker是否能提供安全的環境。本文將總結 docker容器與容器雲 一書3.9節 docker與容器安全 的主要內容,包括docker現有安全機制 存在的安全問題以及docker安全增強三個方面。映象校驗和 為什麼要在docker中使用...
《Kafka入門與實踐》讀書筆記
1 具有高吞吐量來支援如實時的日誌集這樣的大規模事件流。2 能夠很好地處理積壓的資料,以便能夠周期性地載入離線資料進行處理。3 能給低延遲地處理傳統訊息應用場景。4 能夠支援分割槽 分布式,實時地處理訊息,同時具有容錯保障機制。當前比較流行的訊息中介軟體有kafka rocketmq rabbit ...