Docker簡介,應用場景,Docker鏡像使用命令

一.簡介

Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從 Apache2.0 協議開源。

Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。

容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。

二.應用場景

1.Web 應用的自動化打包和發佈。

2.自動化測試和持續集成、發佈。

3.在服務型環境中部署和調整數據庫或其他的後臺應用。

4.從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平臺來搭建自己的 PaaS 環境。

三.優點

Docker 是一個用於開發,交付和運行應用程序的開放平臺。Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。藉助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

1.快速,一致地交付您的應用程序

2.響應式部署和擴展

3.在同一硬件上運行更多工作負載

四.Docker架構

Docker 包括三個基本概念:

鏡像(Image):Docker 鏡像(Image),就相當於是一個 root 文件系統。Docker 鏡像是用於創建 Docker 容器的模板,比如 Ubuntu 系統。

容器(Container):容器是獨立運行的一個或一組應用,是鏡像運行時的實體。鏡像(Image)和容器(Container)的關係,就像是面向對象程序設計中的類和實例一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啓動、停止、刪除、暫停等。

倉庫(Repository):倉庫可看成一個代碼控制中心,用來保存鏡像。Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用。一個 Docker Registry 中可以包含多個倉庫(Repository);每個倉庫可以包含多個標籤(Tag);每個標籤對應一個鏡像。通常,一個倉庫會包含同一個軟件不同版本的鏡像,而標籤就常用於對應該軟件的各個版本。我們可以通過 <倉庫名>:<標籤> 的格式來指定具體是這個軟件哪個版本的鏡像。如果不給出標籤,將以 latest 作爲默認標籤。

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

Docker 容器通過 Docker 鏡像來創建。

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

五.Docker鏡像使用

1.列出本地主機上的鏡像列表

docker images

各個選項說明:

REPOSITORY:表示鏡像的倉庫源

TAG:鏡像的標籤,同一倉庫源可以有多個 TAG,代表這個倉庫源的不同個版本,如 ubuntu 倉庫源裏,有 15.10、14.04 等多個不同的版本,我們使用 REPOSITORY:TAG 來定義不同的鏡像。

IMAGE ID:鏡像ID

CREATED:鏡像創建時間

SIZE:鏡像大小

2.查找鏡像

docker search XXX

NAME: 鏡像倉庫源的名稱

DESCRIPTION: 鏡像的描述

OFFICIAL: 是否 docker 官方發佈

stars: 類似 Github 裏面的 star,表示點贊、喜歡的意思。

AUTOMATED: 自動構建。

3.從倉庫下載,獲取一個新的鏡像

docker pull XXX

4.刪除鏡像

docker rmi XXX

5.創建鏡像

當我們從 docker 鏡像倉庫中下載的鏡像不能滿足我們的需求時,我們可以通過以下兩種方式對鏡像進行更改。

(1)從已經創建的容器中更新鏡像,並且提交這個鏡像

(2)使用 Dockerfile 指令來創建一個新的鏡像

5.1更新鏡像

(1)使用版本爲20.04的基礎鏡像ubuntu鏡像來創建一個容器

docker run -it ubuntu:20.04 /bin/bash

參數說明:

-i: 交互式操作。

-t: 終端。

ubuntu:20.04: 這是指用 ubuntu 20.04 版本鏡像爲基礎來啓動容器。

/bin/bash:放在鏡像名後的是命令,希望有個交互式 Shell,因此用的是 /bin/bash。

如果不指定一個鏡像的版本標籤,例如只使用 ubuntu,docker 將默認使用 ubuntu:latest 鏡像。

(2)在運行的容器內使用 apt-get update 命令進行更新。

(3)在完成操作之後,輸入 exit 命令來退出這個容器。

(4)docker commit 來提交容器副本。

各個參數說明:

-m: 提交的描述信息

-a: 指定鏡像作者

3a299d3e9ea4:容器 ID

lulu/ubuntu:new: 指定要創建的目標鏡像名

(5)使用新鏡像 lulu/ubuntu:new 來啓動一個容器

5.2構建鏡像

使用命令 docker build , 從零開始來創建一個新的鏡像。爲此,我們需要創建一個 Dockerfile 文件,其中包含一組指令來告訴 Docker 如何構建新鏡像。

每一個指令都會在鏡像上創建一個新的層,每一個指令的前綴都必須是大寫的。

第一條FROM,指定使用哪個鏡像源

RUN 指令告訴docker 在鏡像內執行命令,安裝了什麼。然後,我們使用 Dockerfile 文件,通過 docker build 命令來執行dockerfile文件中的命令構建一個鏡像。

參數說明:

-t :指定要創建的目標鏡像名

. :Dockerfile 文件所在目錄,可以指定Dockerfile 的絕對路徑

使用docker images 查看創建的鏡像已經在列表中存在,鏡像ID爲 19a96a0b9bdd   

6.設置鏡像標籤,爲鏡像添加一個新的標籤

docker tag 鏡像ID 鏡像源名(repository name):新的標籤名(tag)

7.導出鏡像,將指定鏡像保存成tar歸檔文件

docker save -o 文件名.tar 鏡像名

8.導入鏡像

docker load --input 文件路徑/文件名.tar

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章