docker初學

Docker基礎知識java

1. Docker基礎知識點mysql

1.1 什麼是Dockerweb

    Docker是一個開源的引擎,能夠輕鬆的爲任何應用建立一個輕量級的、可移植的、自給自足的容器。(集裝箱原理)sql

1.2 什麼是LXCdocker

    Linux Container容器是一種內核虛擬化技術,能夠提供輕量級的虛擬化,以便隔離進程和資源編程

    Docker核心解決的問題是利用LXC來實現相似VM的功能,從而利用更加節省的硬件資源提供給用戶更多的計算資源。centos

2. Docker架構bash

    Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和建立Docker容器。服務器

    Docker 容器經過 Docker 鏡像來建立。網絡

    容器與鏡像的關係相似於面向對象編程中的對象與類。

docker

面向對象

容器

對象

鏡像

 

注:

簡單的說類是對象的模版。

首先咱們能夠來理解一下對象的概念,面向對象編程的程序實際就是多個對象的集合,咱們能夠把全部的事物都抽象成對象,在程序設計中能夠看做:對象=屬性+方法。屬性就是對象的數據,而方法就是對象的行爲。下面來講類,就像我開頭所說類是對象的模版,而對象是類的實例化。舉個例子,餅乾模子能夠看做是類,而具體的餅乾就是對象。再好比有一個類是表示人,而後能夠經過人這個模版來實例化出張3、李四。

 

Docker總架構圖

 

docker pull

 

 

docker run

3. Docker名詞解釋

Docker 鏡像(Images)

Docker 鏡像是用於建立 Docker 容器的模板。

Docker 容器(Container)

容器是獨立運行的一個或一組應用。

Docker架構中服務交付的最終體現形式

Docker 客戶端(Client)

Docker 客戶端經過命令行或者其餘工具使用 Docker API 與 Docker 的守護進程通訊。

Docker Daemon

Docker Daemon是Docker架構中一個常駐在後臺的系統進程,接受並處理Docker Client發送的請求。

Docker Server

 

Docker Server在Docker架構中是專門服務於Docker Client的server,接受並調度分發Docker Client發送的請求。

Engine

 

Engine是Docker架構中的運行引擎,同時也Docker運行的核心模塊。它扮演Docker container存儲倉庫的角色,而且經過執行job的方式來操縱管理這些容器。

Job

一個Job能夠認爲是Docker架構中Engine內部最基本的工做執行單元。Docker能夠作的每一項工做,均可以抽象爲一個job。

Docker 倉庫(Registry)

Docker 倉庫用來保存鏡像,能夠理解爲代碼控制中的代碼倉庫。而容器鏡像是在容器被建立時,被加載用來初始化容器的文件架構與目錄。

Graph

 

Graph在Docker架構中扮演已下載容器鏡像的保管者,以及已下載容器鏡像之間關係的記錄者。

Driver

 

Driver是Docker架構中的驅動模塊

graphdriver

主要用於完成容器鏡像的管理,包括存儲與獲取。

networkdriver

完成Docker容器網絡環境的配置

execdriver

Docker容器的執行驅動,負責建立容器運行命名空間,負責容器資源使用的統計與限制,負責容器內部進程的真正運行等。

libcontainer

 

Docker架構中一個使用Go語言設計實現的庫,設計初衷是但願該庫能夠不依靠任何依賴,直接訪問內核中與容器相關的API。容器管理的包

Docker 主機(Host)

一個物理或者虛擬的機器用於執行 Docker 守護進程和容器。

 

 

 

 

 

 

 

 

4. Docker命令

4.1 環境信息相關

docker info  //docker系統信息

 

docker version  //docker版本信息

 

 

4.2 系統運維相關

docker ps

列出容器

docker ps [OPTIONS]

-a :顯示全部的容器,包括未運行的。

-f :根據條件過濾顯示的內容。

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

-n :列出最近建立的n個容器。

-q :靜默模式,只顯示容器編號。

docker start/stop/restart

docker start :啓動一個或多少已經被中止的容器

docker stop :中止一個運行中的容器

docker restart :重啓容器

 

docker pause/unpause

docker pause :暫停容器中全部的進程。

docker unpause :恢復容器中全部的進程

docker pause [OPTIONS] CONTAINER [CONTAINER...]

docker unpause [OPTIONS] CONTAINER [CONTAINER...]

暫停webapp服務

docker pause webapp

恢復webapp服務

docker unpause webapp

docker kill

殺掉一個運行中的容器

docker kill [OPTIONS] CONTAINER [CONTAINER...]

 

docker exec 

在運行的容器中執行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

ocker exec -it ContainerID/ContainaerName

在容器中開啓一個交互模式的終端

-i :即便沒有附加也保持STDIN 打開

-t :分配一個僞終端

 

(有時候會在容器外執行下腳本對比在容器內執行腳本,看輸出是否一致)

docker inspect

 獲取容器/鏡像的元數據

docker inspect ContainerID/ContainaerName

 

-f :指定返回值的模板文件

(多用於獲取制定的參數)

 

(經過docker inspect | grep 關鍵字,也能搜索到,可是沒有 -f 指定搜索方便,尤爲是當你腳本中要獲取某個參數值時)

docker top

查看容器中運行的進程信息

docker top [OPTIONS] CONTAINER [ps OPTIONS]

 

docker cp

用於容器與主機之間的數據拷貝

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-

docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

docker exec -it <container_id> bash -c 'cat > /path/to/container/file' < /path/to/host/file/

 

 

docker logs

獲取容器的日誌

-t : 顯示時間戳

--tail :僅列出最新N條容器日誌

docker logs -t --tail=10 webapp

 

(有時候產品開發讓看下logs,你們都說日誌太多了,就可使用--tail 來獲取最新的一部分日誌,爲了好區分時間,前面能夠加上 -t 顯示時間)

 

 

docker search

Docker Hub查找鏡像

docker search [OPTIONS] TERM

 

docker pull

從鏡像倉庫中拉取或者更新指定鏡像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Docker Hub下載java最新版鏡像

docker pull java

docker push 

將本地的鏡像上傳到鏡像倉庫,要先登錄到鏡像倉庫

docker push [OPTIONS] NAME[:TAG]

docker push webapp:v1

docker images

列出本地鏡像

docker images [OPTIONS] [REPOSITORY[:TAG]]

-a :列出本地全部的鏡像(含中間映像層,默認狀況下,過濾掉中間映像層);

-f :顯示知足條件的鏡像;

-q :只顯示鏡像ID。

docker run

建立一個新的容器並運行一個命令

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

使用鏡像centos:7以交互模式啓動一個容器,在容器內執行/bin/bash命令

docker run -it centos:7 /bin/bash

docker create

建立一個新的容器但不啓動它

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

使用docker鏡像centos:7建立一個容器,並將容器命名爲odps

docker create  --name odps  centos:7

docker rm

刪除一個或多少容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]

docker rm -f webapp

docker export

將文件系統做爲一個tar歸檔文件導出到STDOUT

docker export [OPTIONS] CONTAINER

id爲a404c6c174a2的容器保存爲tar文件

docker export -o mysql.tar a404c6c174a2

docker save

將指定鏡像保存成 tar 歸檔文件

docker save [OPTIONS] IMAGE [IMAGE...]

將鏡像127.0.0.1:5000/java 生成java_v1.tar文檔

docker save -o java_v1.tar 127.0.0.1:5000/java

docker import

從歸檔文件中建立鏡像

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

從鏡像歸檔文件mysql.tar建立鏡像,命名爲127.0.0.1:5000/mysql:v1

 docker import  mysql.tar 127.0.0.1:5000/mysql:v1

docker tag 

標記本地鏡像,將其納入某一倉庫

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

將鏡像docker.io/mysql標記爲 127.0.0.1:5000/mysql 鏡像

docker tag docker.io/mysql 127.0.0.1:5000/mysql

docker rmi

刪除本地一個或多少鏡像

docker rmi -f 127.0.0.1:5000/mysql:v1

相關文章
相關標籤/搜索