1. 程式人生 > >Docker入門與實戰講解

Docker入門與實戰講解

pau spa 個人 開發人員 1.0 創建 依賴 之前 講解

簡述

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機器和數據中心中運行。最重要的是,他們不依賴於任何語言、框架包括系統。

Docker是什麽?

Docker是基於Go語言實現的雲開源項目,誕生於2013年初,最初是dotCloud公司發起。

Docker通過對應用組件的封裝、分發、部署、運行等生命周期的管理,達到應用組件級別的“一次封裝,到處運行”。這裏應用組件,即可以是Web應用,也可以是一套數據庫服務,甚至是一個操作系統或編譯器。

Docker由鏡像(Image)、容器(Container)、倉庫(Repository) 三大核心組成。

為什麽要用Docker?

更快速的交付和部署(使用docker,開發人員可以用鏡像來快速構建一套標準的開發環境;開發完成之後,測試和運維人員可以直接使用相同環境來部署代碼。)

更輕松的遷移和擴展(docker容器幾乎可以在任意平臺上運行,包括物理機、虛擬機、公有雲、私有雲、個人電腦、服務器等。可以在不同的平臺輕松地遷移應用)

更簡單的更新管理(使用Dockerfile,只需要修改小小的配置,就可以替代以往大量的更新工作)

與傳統虛擬機對比

技術分享圖片

場景示例-傳統開發流程

技術分享圖片

場景示例-docker環境開發流程

技術分享圖片

Linux下安裝docker程序

環境準備

1Linux7以上或者cent OS6及以上版本

2、內核3.1.0以上

364位操作系統

安裝docker

1yum安裝 yum install docker-engine

2curl腳本安裝



Docker命令用法→鏡像

創建鏡像

一、基於已有的鏡像容器創建

docker commit [options] container[repository]

option:-a, --author=“” 作者信息

-m,--message=“” 提交信息

-p, --pause=true 提交時暫停容器運行

二、基於本地模板導入創建

docker load < ***.tar --本地模板文件tar

三、基於Dockerfile文件構建鏡像
docker build –t image-name basedir

技術分享圖片

技術分享圖片


Docker命令用法→刪除鏡像

刪除鏡像

dockerrmi image

dockerrmi –f image –強制刪除鏡像

其中image可以為標簽或者ID

註意:

用dockerrmi刪除鏡像時,首先刪除容器,再刪除鏡 像。


技術分享圖片

技術分享圖片

Docker命令用法→容器

創建 |啟動容器

docker create image 創建的容器是停止狀態

docker start/stopcontainer_id啟動/停止容器

docker run image創建並啟動容器

備註:image-可以為鏡像標簽或Id

container_id為容器id

技術分享圖片

Docker數據卷→介紹

數據卷是一個特別指定的目錄,該目錄利用容器的UFS文件系統可以為容器提供一些穩定的特性或者數據共享。數據卷可以在多個容器之間共享。

創建數據卷,只要在dockerrun命令後面跟上-v參數即可創建一個數據卷,當然你也可以跟多個-v參數來創建多個數據卷,當創建好帶有數據卷的容器後,你就可以在其他容器中通過--volumes-froms參數來掛載該數據卷了,而不管該容器是否運行。你也可以在Dockerfile中通過VOLUME指令來增加一個或者多個數據卷。

Docker基礎命令用法總結

技術分享圖片


Docker-dockerfile構建鏡像用法

介紹Dockerfile的基本語法結構Dockerfile有以下指令選項:

?FROM

FROM指定構建鏡像的基礎源鏡像,如果本地沒有基礎鏡像會從docker公共 庫中下載鏡像

?RUN

RUN指令將在當前鏡像基礎上執行指定命令

?CMD

CMD的目的是為了在啟動容器時提供一個默認的命令執行選項。如果用戶啟 動容器時指定了運行的命令,則會覆蓋掉CMD指定的命令

?EXPOSE

Docker 服務端容器對外映射的本地端口,需要在dockerrun 的時候使用-p或 者-P選項生效

?ENV

ENV指定一個環節變量,會被後續RUN指令使用,並在容器運行時保留

?ADD

ADD復制本地主機文件、目錄或者遠程文件URLS從並且添加到容器指定路 徑中,支持正則模糊匹配

?COPY

COPY復制新文件或者目錄從並且添加到容器指定路徑中 。用法同ADD,唯 一的不同是不能指定遠程文件 URLS

?VOLUME

VOLUME創建一個可以從本地主機或其他容器掛載的掛載點

?WORKDIR

WORKDIR為後續的RUN、CMD、ENTRYPOINT指令配置工作目錄。可以使 用多個WORKDIR指令,後續命令如果參數是相對路徑,則會基於之前命令指 定的路徑

DockerFile部署tomcat應用服務器

技術分享圖片


技術分享圖片

技術分享圖片

啟動docker鏡像

dockerrun –d –p 8080:8080 u-tomcat

-d --標示後臺進程運行–p端口映射宿主8080→容器8080端口

技術分享圖片


出現上圖所示表示啟動成功,用http://ip:8080/訪問,顯示如圖說明部署tomcat成功。技術分享圖片


技術分享圖片

註意:

1、dockerfile構建鏡像使用ADD指令復制文件到鏡像 目錄中 文件必須與dockerfile文件同目錄。

2、dockerinspect -f “{{.Volumes}}”容器id 這裏可 以 存放tomcat部署的war重啟容器自動部署。

重啟容 器命令:dockerrestart容器id

Docker入門與實戰講解