docker基礎學習一
docker 介紹
1、docker 是什麼 ?
docker是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴到一個可移植的容器中。
然後釋出到任何一個 linux 系統上面。
特點:
docker 容器啟動和停止都很快,直接在宿主中可以完成。
docker 容器佔用的系統資源少,一臺宿主可以執行很多容器
docker 操縱方便,簡單易學習
docker 可以通過 dockerfile 配置檔案自動建立和部署。
docker 容器也是沙箱機制的,相互完全隔離
三大核心概念 : 映象,容器,倉庫
映象
docker 映象類似於虛擬機器映象,也可以理解為一個面向 docker 引擎的只讀模版。
映象是建立 docker 容器的基礎,映象可以是一個系統( ubuntu映象 ),也可以是一個應用程式( mysql 映象 )。
獲取映象
docker pull name[:tag]
開發者可以通過 docker pull 來獲取對應的映象。
檢視映象資訊
docker images
列出所有的映象列表。
展示映象的概要資訊,瞭解當前所有的映象。
檢視具體映象資訊
docker inspect imageID
獲取某一個映象的詳細資訊。
搜尋映象
docker search name
在倉庫中查詢某一個映象。
刪除映象
docker rmi name
刪除某一個映象。
建立映象
建立映象有三種方法:基於已有映象的容器建立、基於本地模版匯入、基於 dockerfile 建立
基礎已有映象容器建立
docker commit [options] containerId [imageName[:tag]]
建立一個容器:
options :a ( 作者名稱 )、m( 提交資訊 )、p( 建立時候暫停 )
containerId :容器的id
imageName[:tag] : 名稱和標籤
直接匯入模版檔案建立映象
docker import tpl
存出和載入映象
儲存可以將映象儲存為本地檔案
載入將本地檔案匯入為一個本地映象
上傳映象
docker push name[:tag]
建立本地映象到倉庫中。
容器
docker 容器類似一個輕量級的沙箱,docker 利用容器來隔離和執行應用。
容器是通過映象建立例項來的,在宿主中可以實現啟動、停止、刪除等操作,且容器相互隔離不受影響。
建立容器
docker create name[:tag]
建立了容器但是沒有啟動它。
可以通過 docker start name 來啟動容器
新建並啟動容器
docker run name
相當於:docker create --> docker start
過程:
1、檢查是否存在本地映象,不存在到倉庫中獲取
2、利用容器建立並啟動容器
3、分配一個檔案系統,並在只讀的映象層外面掛在一層可讀寫層
4、從宿主的網橋中橋接一個虛擬介面到容器中
5、從地址池配置一個 IP 地址給容器
6、執行指定到應用程式
7、執行完畢
引數:
t :分配一個偽終端
i :標準的輸入
d : 後臺執行
進入容器
docker exec -it containerID /bin/bash
nesnter 工具
需要下載工具,並且連結 docker
刪除容器
docker rm containerID
docker 倉庫
docker 倉庫類似於程式碼倉庫,是 docker 集中存放映象檔案的位置。
資料卷
建立資料卷
docker run -d -p --name -v /container/dir:/local/dir imageName
-v : 建立一個數據卷。
一個宿主目錄和容器目錄的對映。
建立資料卷容器
docker run-it -v /local/dbdata --name con1 ubuntu
共享資料卷容器
docker run -it --volumes-from con1 --name con2 ubuntu
con1 和 con2 同時共享 /dbdata 目錄。
利用資料卷容器遷移資料
1、備份資料
docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu
建立一個容器且掛在到 dbdata 上面,-v 建立資料卷
tar cvf /backup/backup.tar /dbdata
打包資料tar
2、恢復資料
tar xvf /backup/backup.tar
解壓資料
埠對映
docker run -p 5000:30000 name image
p : 將本地埠對映到容器埠上
Dockerfile 建立映象
dockerfile 是一個文字格式的配置檔案,可以快速的建立自定義映象。
基本結構
dockerfile 是一行行命令語句組成。
一般分為四個部分:
基本映象資訊、維護者資訊、映象操作者、容器啟動指令
配置
1、FROM <image[:tag]>
指定配置的映象
2、MAINTAINER <name>
作者名稱
3、RUN <command>
在 shell 執行命令,即 /bin/bash -c
4、CMD [] <command>
執行命令,只會執行最後一條
5、EXPOSE ports
暴漏執行埠,可外部訪問或者 -p 對映
6、ENV <key> <value>
指定環境變數,在配置全域性可以使用
7、ADD/COPY <src> <dest>
指定本地的連結到容器目錄
8、ENTRYTRYOINT <command>
容器啟動後,執行到命令
9、VOLUME ["data"]
建立一個主機或者其他資料卷掛載點
10、USER daemon
指定使用者名稱稱
建立映象
編寫完成 dockerfile 檔案之後,可以用 docker build 建立映象。