docker基礎知識

2021-10-06 11:47:35 字數 1547 閱讀 8074

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等,它們都是通過虛擬硬體,...