天天看點

docker privileged作用_Docker學習筆記:(1)Docker基礎知識

docker privileged作用_Docker學習筆記:(1)Docker基礎知識

Docker簡介

Docker是容器虛拟化技術的實作。将運作應用所需要的系統環境,由下而上打包成鏡像,以達到應用跨平台間的無縫接軌運作。

Docker和傳統虛拟化方式的不同之處

1)傳統虛拟機技術是虛拟出一套硬體,并在其上運作一個作業系統,在該系統上再運作所需應用程序。而容器沒有進行硬體虛拟,容器内沒有自己的核心,容器内的應用程序直接運作于宿主的核心。是以容器要比傳統虛拟機更為輕便。

2)每個容器之間互相隔離,每個容器有自己的檔案系統,容器之間不會互相影響。

優點

占用資源少,啟動快。

三個概念

1)倉庫:repository,集中存放鏡像檔案的場所。倉庫(Repository)和倉庫注冊伺服器(Registry)是不同的。倉庫注冊伺服器上存放着多個倉庫,每個倉庫中存儲多個鏡像,每個鏡像有不同的标簽(tag)。

2)鏡像:iamge,隻讀的模闆,用來建立Docker容器。

3)容器:container,用鏡像建立的運作執行個體。

Docker常用指令

鏡像指令

1)service docker start:啟動Docker背景服務

2)docker images [OPTIONS] :列出本地主機上的鏡像

OPTIONS說明

-a :列出本地所有的鏡像(含中間映像層)

-q :隻顯示鏡像ID。

--digests :顯示鏡像的摘要資訊

3)docker search 鏡像名字:查找鏡像

4)docker pull 鏡像名字[:TAG]:下載下傳某個版本鏡像

5)docker rmi 鏡像ID1 [鏡像ID2...]:删除鏡像

組合指令:一次性删除多個指令 docker rm -f $(docker ps -a -q)

6)docker save 鏡像名1:版本号 鏡像名2:版本号 -o ./壓縮包名.tar :打包鏡像

容器指令

1)docker run [OPTIONS] IMAGE [COMMAND] [ARG...]:建立并啟動容器

OPTIONS說明

--name="容器新名字": 為容器指定一個名稱

-d: 背景運作容器,并傳回容器ID,也即啟動守護式容器

-i:以互動模式運作容器,通常與 -t 同時使用

-t:為容器重新配置設定一個僞輸入終端,通常與 -i 同時使用

-P: 随機端口映射

-p: 指定端口映射,有以下四種格式

ip:hostPort:containerPort

ip::containerPort

hostPort:containerPort

containerPort

2)docker ps [OPTIONS]:列出目前所有正在運作的容器

OPTIONS說明

-a :列出目前所有正在運作的容器+曆史上運作過的

-l :顯示最近建立的容器。

-n:顯示最近n個建立的容器。

-q :靜默模式,隻顯示容器編号。

3)docker start 容器ID或者容器名:啟動容器

4)docker restart 容器ID或者容器名:重新開機容器

5)docker stop 容器ID或者容器名:停止容器

6)docker kill 容器ID或者容器名:強制停止容器

7)docker rm 容器ID:删除已停止的容器

8)docker logs -f -t --tail 數字 容器ID:檢視容器日志

-t 是加入時間戳

-f 跟随最新的日志列印

--tail 數字 顯示最後多少條

9)docker top 容器ID:檢視容器内運作的程序

10)docker inspect 容器ID:檢視容器内部細節

11)docker exec -it 容器ID /bin/bash:進入正在運作的容器并以指令行互動

12)docker cp 容器ID:容器内路徑 目的主機路徑:從容器内拷貝檔案到主機上

13)docker commit -m="送出的描述資訊" -a="作者" 容器ID 要建立的目标鏡像名:[标簽名] :送出容器副本生成新的鏡像

Docker鏡像原理

鏡像是一種輕量級、可執行的獨立軟體包,打包了軟體運作環境和基于運作環境開發的軟體。它包含運作某個軟體所需的所有内容,包括代碼、運作時、庫、環境變量和配置檔案。

鏡像是由一層一層的檔案系統(UnionFS)組成。

為什麼Docker鏡像要采用這種分層結構

共享資源,複用中間層。不用鏡像可以使用相同的鏡像層來建構。主控端隻需在磁盤上儲存一份基礎的鏡像層,記憶體中也隻需加載一份鏡像層,就可以為所有使用到該鏡像層的容器服務了。

鏡像的每一層都可以被共享。

Docker容器資料卷

作用:持久化資料,将關鍵的資料儲存在主控端,以避免容器關閉後,資料跟着消失。

資料卷添加方式

1)直接指令添加

a) 指令: docker run -it -v /主控端絕對路徑目錄:/容器内目錄的絕對路徑 鏡像名

b) 使用指令:docker inspect 容器ID 檢視容器資料卷是否挂載成功

c)注意:如果docker挂載主機目錄Docker通路出現cannot open directory .: Permission denied。解決辦法:在挂載目錄後多加一個--privileged=true參數即可。

2)Dockerfile添加

a)格式:VOLUME["/containerName1","/containerName2"]

b)注意:編寫Dockerfile時,不能指定主控端目錄,而會在運作Dockerfile時,自動生成主控端的挂載目錄。