docker
容器引擎
cgroups、namespace、
服務註冊、服務發現
容器概念早就出現,之後出現docker,docker只是容器技術的一種
docker-machine
docker-swarm
docker-compose
docker daemon
映象:分層、
ubuntu:aufs檔案系統
centos:overlayfs
基礎映象是唯讀的,只有最上邊一層是可寫的
restful
網路: 虛擬橋接式網路
隔離橋僅主機橋
路由橋nat橋
型別:host:與宿主機乙個網路
container:與另乙個容器共享網路
bridge:橋接docker0
none:關閉網路
iptables -t nat -vnl
docker build 必須基於乙個現存映象
dockerfile
必須放在乙個空目錄之中
雲原生開發:程式一定會把最主要的經常變動的引數從環境變數中獲取
底層的許多庫都是基於雲上的進行呼叫的
entrypoint.sh指令碼 :用於不能讀取環境變數的程式,之後也能讀取環境變數
$:環境變數中如果不存在或為空則返回word,否則返回實際值
from、copy(可以使用萬用字元)、add、workdir、volumn、expose、env、arg、run 、cmd、entrypoint、healthcheck、onbuild
copy中的dest目錄一般以/結尾,不然會以dest命名
在工作目錄下建立 .dockerignore檔案(可以使用萬用字元),檔案中新增不需要copy的檔案路徑,建立映象時就不會copy此檔案
workdir:執行命令時以此dir為根目錄
volumn:在dockerfile中如果先copy宿主機上的檔案到映象中,再volumn映象中的目錄,該目錄下的檔案不會被覆蓋,而且宿主機上掛在卷中也會出現該檔案
arg和env類似,arg在build時,可以直接向變數傳值,最好用arg,以區別於run時用的env
build--->run--->cmd
run都會執行,cmd只會執行最後乙個,entrypoint只會執行最後乙個
run指令執行於映像檔案構建過程中,cmd指令執行於基於dockerfile構建出的新映像檔案啟動乙個容器時
run sh -c 「***xx」
cmd指令是可以被覆蓋的,entrypoint指令不會被覆蓋,強行執行其他命令進行覆蓋時會報錯,會把其他命令當作引數傳進去被entrypoint執行的命令所接收
registry
docker-distribution
harbor:
資源限制
memory-swap:生產環境一般都是預設禁用交換記憶體的,啟用之後,效能會下降
oomdocker compose
容器編排工具
docker ps --format }
docker基礎知識 docker學習知識
學習任何乙個開源新技術,首先問自己幾個問題 1.為什要學習它?2.學習它需要了解哪些相關知識點?3.如何快速學習?4.該技術的使用場景是什麼?為什要學習docker?docker是輕量級虛擬化技術,docker使linux容器技術的應用更加簡單和標準化 docker容器啟動時毫秒級的 docker將...
Docker基礎 1 基礎知識
一 docker是什麼 1,為何會有docker出現 方便 環境交付 2,docker理念 一次封裝,到處執行 3,一句話 解決執行環境和配置問題軟體容器,方便做持續整合並有助於整體發布的容器虛擬化技術 二 docker能幹嘛 1,之前的虛擬機器技術 虛擬機器是帶環境安裝的虛擬系統,可以在一種作業系...
docker基礎知識簡介
docker的目標是實現輕量級的作業系統虛擬化。其底層也是基於linux的 lxc 技術實現的,docker只是 在lxc上進行了一層封裝。因為docker是輕量級的虛擬化技術解決方案,所以,在起停操作方面十分快捷,非常方便。先來看看傳統虛擬化技術的原理,比如kvm,xen等,它們都是通過虛擬硬體,...