'Docker 前沿概述'

"

目錄

  • Docker 前沿概述
  • 什麼是Docker?
  • Docker的基本概念
  • 容器(Container) -- 鏡像運行時的實體
  • 鏡像(Image) -- 一個特殊的文件系統
  • 倉庫(Repository) -- 集中存放鏡像文件的地方
  • 下面再來說說虛擬機
  • 容器和虛擬機的比較
  • Docker 解決了什麼樣的問題
  • 準備你的docker環境
  • 測試Docker 版本
  • 測試Docker 安裝
  • 回顧和備忘單

Docker 前沿概述

什麼是Docker?

Docker是基於Go語言實現的開源容器項目。Docker是一個為開發者和系統管理員提供的開發,部署和運行的容器應用程序。Linux使用容器開發應用程序的這種方式稱為容器化。Docker項目已加入Linux基金會,並遵循Apache2.0 協議,全部開源代碼再http://github.com/docker 項目倉庫進行維護。

Docker的基本概念

Docker中包括三個基本概念:容器(Container)、鏡像(Image)、倉庫(Repository)

容器(Container) -- 鏡像運行時的實體

先來看看容器較為官方的解釋:容器就是將軟件打包成基本單元,用來開發、交付和部署。

  • 容器鏡像是輕量的、可執行的軟件包 ,包含軟件運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設置。
  • 容器化軟件是基於Linux和Windows的應用,在任何環境中都能夠始終如一地運行。
  • 容器賦予了軟件獨立性,使其免受外在環境差異(例如,開發和預演環境的差異)的影響,從而有助於減少團隊間在相同環境上運行不同軟件時的衝突。

鏡像(Image) -- 一個特殊的文件系統

Docker中的Image鏡像相當於是一個文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數。

鏡像可以基於Dockerfile構建,Dockerfile是一個描述文件,裡面包含若干條命令,每條命令都會對基礎文件系統創建新的層次結構。

用戶可以通過編寫Dockerfile創建新的鏡像,也可以直接從類似github的Docker Hub上下載鏡像使用。

倉庫(Repository) -- 集中存放鏡像文件的地方

如果你使用過 git 和 github 就很容易理解Docker的倉庫概念。Docker倉庫相當於一個 github 上的代碼庫。

Docker 倉庫是用來包含鏡像的位置,Docker提供一個註冊服務器(Registry)來保存多個倉庫,每個倉庫又可以包含多個鏡像。

它們的範圍大小依次是 倉庫 > 鏡像 > 容器

下面再來說說虛擬機

前面說到,容器在Linux上本機運行,並與其他容器共享主機的內核。它運行一個獨立的進程,不佔用任何其他可執行文件的內存,使其輕量級。

相比之下,虛擬機運行一個完整的客戶操作系統,通過虛擬機管理程序對主機資源進行虛擬訪問。通常,VM提供的環境比大多數應用程序需要的資源更多。

下面這幅圖很好的表述了這一點

"

目錄

  • Docker 前沿概述
  • 什麼是Docker?
  • Docker的基本概念
  • 容器(Container) -- 鏡像運行時的實體
  • 鏡像(Image) -- 一個特殊的文件系統
  • 倉庫(Repository) -- 集中存放鏡像文件的地方
  • 下面再來說說虛擬機
  • 容器和虛擬機的比較
  • Docker 解決了什麼樣的問題
  • 準備你的docker環境
  • 測試Docker 版本
  • 測試Docker 安裝
  • 回顧和備忘單

Docker 前沿概述

什麼是Docker?

Docker是基於Go語言實現的開源容器項目。Docker是一個為開發者和系統管理員提供的開發,部署和運行的容器應用程序。Linux使用容器開發應用程序的這種方式稱為容器化。Docker項目已加入Linux基金會,並遵循Apache2.0 協議,全部開源代碼再http://github.com/docker 項目倉庫進行維護。

Docker的基本概念

Docker中包括三個基本概念:容器(Container)、鏡像(Image)、倉庫(Repository)

容器(Container) -- 鏡像運行時的實體

先來看看容器較為官方的解釋:容器就是將軟件打包成基本單元,用來開發、交付和部署。

  • 容器鏡像是輕量的、可執行的軟件包 ,包含軟件運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設置。
  • 容器化軟件是基於Linux和Windows的應用,在任何環境中都能夠始終如一地運行。
  • 容器賦予了軟件獨立性,使其免受外在環境差異(例如,開發和預演環境的差異)的影響,從而有助於減少團隊間在相同環境上運行不同軟件時的衝突。

鏡像(Image) -- 一個特殊的文件系統

Docker中的Image鏡像相當於是一個文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數。

鏡像可以基於Dockerfile構建,Dockerfile是一個描述文件,裡面包含若干條命令,每條命令都會對基礎文件系統創建新的層次結構。

用戶可以通過編寫Dockerfile創建新的鏡像,也可以直接從類似github的Docker Hub上下載鏡像使用。

倉庫(Repository) -- 集中存放鏡像文件的地方

如果你使用過 git 和 github 就很容易理解Docker的倉庫概念。Docker倉庫相當於一個 github 上的代碼庫。

Docker 倉庫是用來包含鏡像的位置,Docker提供一個註冊服務器(Registry)來保存多個倉庫,每個倉庫又可以包含多個鏡像。

它們的範圍大小依次是 倉庫 > 鏡像 > 容器

下面再來說說虛擬機

前面說到,容器在Linux上本機運行,並與其他容器共享主機的內核。它運行一個獨立的進程,不佔用任何其他可執行文件的內存,使其輕量級。

相比之下,虛擬機運行一個完整的客戶操作系統,通過虛擬機管理程序對主機資源進行虛擬訪問。通常,VM提供的環境比大多數應用程序需要的資源更多。

下面這幅圖很好的表述了這一點

Docker 前沿概述

容器和虛擬機的比較

這或許也就能解釋 Docker 如此流行的原因

  • Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式(數分鐘)要快得多;
  • Docker容器對系統資源需求很少,一臺主機可以運行數千個Docker容器;
  • Docker通過類似Git設計理念的操作來方便用戶獲取、分發和更新應用鏡像,存儲複用,增量更新;
  • Docker通過Dockerfile支持靈活的自動化創新和部署機制,以提高工作效率,並標準化流程。

下圖是Docker容器技術與傳統虛擬機技術的比較:

特性容器虛擬機啟動速度秒級分鐘級性能接近原生較弱內存代價很小較多硬盤使用一般為MB一般為GB運行密度單機支持上千個容器一般為幾十個隔離性安全隔離完全隔離遷移性優秀一般

Docker 解決了什麼樣的問題

一項技術或者軟件的流行都是為了解決某種問題應用而生的,那麼話說回來了,Docker解決了什麼問題呢?

  • 組織有序:如果沒有Docker,一臺機器就可能像是一個裝滿垃圾的抽屜,應用程序依賴各種資源,一些應用程序依賴各種代碼庫,語音,圖像等。這種依賴關係很像分佈式各個系統的調用網一樣混亂不堪,如果用一張圖來表示一下,就像是下面這樣
"

目錄

  • Docker 前沿概述
  • 什麼是Docker?
  • Docker的基本概念
  • 容器(Container) -- 鏡像運行時的實體
  • 鏡像(Image) -- 一個特殊的文件系統
  • 倉庫(Repository) -- 集中存放鏡像文件的地方
  • 下面再來說說虛擬機
  • 容器和虛擬機的比較
  • Docker 解決了什麼樣的問題
  • 準備你的docker環境
  • 測試Docker 版本
  • 測試Docker 安裝
  • 回顧和備忘單

Docker 前沿概述

什麼是Docker?

Docker是基於Go語言實現的開源容器項目。Docker是一個為開發者和系統管理員提供的開發,部署和運行的容器應用程序。Linux使用容器開發應用程序的這種方式稱為容器化。Docker項目已加入Linux基金會,並遵循Apache2.0 協議,全部開源代碼再http://github.com/docker 項目倉庫進行維護。

Docker的基本概念

Docker中包括三個基本概念:容器(Container)、鏡像(Image)、倉庫(Repository)

容器(Container) -- 鏡像運行時的實體

先來看看容器較為官方的解釋:容器就是將軟件打包成基本單元,用來開發、交付和部署。

  • 容器鏡像是輕量的、可執行的軟件包 ,包含軟件運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設置。
  • 容器化軟件是基於Linux和Windows的應用,在任何環境中都能夠始終如一地運行。
  • 容器賦予了軟件獨立性,使其免受外在環境差異(例如,開發和預演環境的差異)的影響,從而有助於減少團隊間在相同環境上運行不同軟件時的衝突。

鏡像(Image) -- 一個特殊的文件系統

Docker中的Image鏡像相當於是一個文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數。

鏡像可以基於Dockerfile構建,Dockerfile是一個描述文件,裡面包含若干條命令,每條命令都會對基礎文件系統創建新的層次結構。

用戶可以通過編寫Dockerfile創建新的鏡像,也可以直接從類似github的Docker Hub上下載鏡像使用。

倉庫(Repository) -- 集中存放鏡像文件的地方

如果你使用過 git 和 github 就很容易理解Docker的倉庫概念。Docker倉庫相當於一個 github 上的代碼庫。

Docker 倉庫是用來包含鏡像的位置,Docker提供一個註冊服務器(Registry)來保存多個倉庫,每個倉庫又可以包含多個鏡像。

它們的範圍大小依次是 倉庫 > 鏡像 > 容器

下面再來說說虛擬機

前面說到,容器在Linux上本機運行,並與其他容器共享主機的內核。它運行一個獨立的進程,不佔用任何其他可執行文件的內存,使其輕量級。

相比之下,虛擬機運行一個完整的客戶操作系統,通過虛擬機管理程序對主機資源進行虛擬訪問。通常,VM提供的環境比大多數應用程序需要的資源更多。

下面這幅圖很好的表述了這一點

Docker 前沿概述

容器和虛擬機的比較

這或許也就能解釋 Docker 如此流行的原因

  • Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式(數分鐘)要快得多;
  • Docker容器對系統資源需求很少,一臺主機可以運行數千個Docker容器;
  • Docker通過類似Git設計理念的操作來方便用戶獲取、分發和更新應用鏡像,存儲複用,增量更新;
  • Docker通過Dockerfile支持靈活的自動化創新和部署機制,以提高工作效率,並標準化流程。

下圖是Docker容器技術與傳統虛擬機技術的比較:

特性容器虛擬機啟動速度秒級分鐘級性能接近原生較弱內存代價很小較多硬盤使用一般為MB一般為GB運行密度單機支持上千個容器一般為幾十個隔離性安全隔離完全隔離遷移性優秀一般

Docker 解決了什麼樣的問題

一項技術或者軟件的流行都是為了解決某種問題應用而生的,那麼話說回來了,Docker解決了什麼問題呢?

  • 組織有序:如果沒有Docker,一臺機器就可能像是一個裝滿垃圾的抽屜,應用程序依賴各種資源,一些應用程序依賴各種代碼庫,語音,圖像等。這種依賴關係很像分佈式各個系統的調用網一樣混亂不堪,如果用一張圖來表示一下,就像是下面這樣
Docker 前沿概述

但是Docker解決了這個問題,應用程序的各種依賴和環境都直接部署在Docker的容器中,起到隔離一切的目 的,就像是下圖所示的這樣

"

目錄

  • Docker 前沿概述
  • 什麼是Docker?
  • Docker的基本概念
  • 容器(Container) -- 鏡像運行時的實體
  • 鏡像(Image) -- 一個特殊的文件系統
  • 倉庫(Repository) -- 集中存放鏡像文件的地方
  • 下面再來說說虛擬機
  • 容器和虛擬機的比較
  • Docker 解決了什麼樣的問題
  • 準備你的docker環境
  • 測試Docker 版本
  • 測試Docker 安裝
  • 回顧和備忘單

Docker 前沿概述

什麼是Docker?

Docker是基於Go語言實現的開源容器項目。Docker是一個為開發者和系統管理員提供的開發,部署和運行的容器應用程序。Linux使用容器開發應用程序的這種方式稱為容器化。Docker項目已加入Linux基金會,並遵循Apache2.0 協議,全部開源代碼再http://github.com/docker 項目倉庫進行維護。

Docker的基本概念

Docker中包括三個基本概念:容器(Container)、鏡像(Image)、倉庫(Repository)

容器(Container) -- 鏡像運行時的實體

先來看看容器較為官方的解釋:容器就是將軟件打包成基本單元,用來開發、交付和部署。

  • 容器鏡像是輕量的、可執行的軟件包 ,包含軟件運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設置。
  • 容器化軟件是基於Linux和Windows的應用,在任何環境中都能夠始終如一地運行。
  • 容器賦予了軟件獨立性,使其免受外在環境差異(例如,開發和預演環境的差異)的影響,從而有助於減少團隊間在相同環境上運行不同軟件時的衝突。

鏡像(Image) -- 一個特殊的文件系統

Docker中的Image鏡像相當於是一個文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數。

鏡像可以基於Dockerfile構建,Dockerfile是一個描述文件,裡面包含若干條命令,每條命令都會對基礎文件系統創建新的層次結構。

用戶可以通過編寫Dockerfile創建新的鏡像,也可以直接從類似github的Docker Hub上下載鏡像使用。

倉庫(Repository) -- 集中存放鏡像文件的地方

如果你使用過 git 和 github 就很容易理解Docker的倉庫概念。Docker倉庫相當於一個 github 上的代碼庫。

Docker 倉庫是用來包含鏡像的位置,Docker提供一個註冊服務器(Registry)來保存多個倉庫,每個倉庫又可以包含多個鏡像。

它們的範圍大小依次是 倉庫 > 鏡像 > 容器

下面再來說說虛擬機

前面說到,容器在Linux上本機運行,並與其他容器共享主機的內核。它運行一個獨立的進程,不佔用任何其他可執行文件的內存,使其輕量級。

相比之下,虛擬機運行一個完整的客戶操作系統,通過虛擬機管理程序對主機資源進行虛擬訪問。通常,VM提供的環境比大多數應用程序需要的資源更多。

下面這幅圖很好的表述了這一點

Docker 前沿概述

容器和虛擬機的比較

這或許也就能解釋 Docker 如此流行的原因

  • Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式(數分鐘)要快得多;
  • Docker容器對系統資源需求很少,一臺主機可以運行數千個Docker容器;
  • Docker通過類似Git設計理念的操作來方便用戶獲取、分發和更新應用鏡像,存儲複用,增量更新;
  • Docker通過Dockerfile支持靈活的自動化創新和部署機制,以提高工作效率,並標準化流程。

下圖是Docker容器技術與傳統虛擬機技術的比較:

特性容器虛擬機啟動速度秒級分鐘級性能接近原生較弱內存代價很小較多硬盤使用一般為MB一般為GB運行密度單機支持上千個容器一般為幾十個隔離性安全隔離完全隔離遷移性優秀一般

Docker 解決了什麼樣的問題

一項技術或者軟件的流行都是為了解決某種問題應用而生的,那麼話說回來了,Docker解決了什麼問題呢?

  • 組織有序:如果沒有Docker,一臺機器就可能像是一個裝滿垃圾的抽屜,應用程序依賴各種資源,一些應用程序依賴各種代碼庫,語音,圖像等。這種依賴關係很像分佈式各個系統的調用網一樣混亂不堪,如果用一張圖來表示一下,就像是下面這樣
Docker 前沿概述

但是Docker解決了這個問題,應用程序的各種依賴和環境都直接部署在Docker的容器中,起到隔離一切的目 的,就像是下圖所示的這樣

Docker 前沿概述

  • 提高可移植性:另一個軟件的問題是,應用程序的依賴不僅只是資源的依賴,還有可能是系統環境的依賴,操作系統之間的移植性一直是軟件用戶的一個主要問題。雖然Linux和OS X之間可能會有某種兼容性,但是在Windows環境下開發的軟件移植到Linux會很困難。
  • Docker解決了這一點,因為Docker可運行在原生的Linux環境下,在OS X和Windows環境中通過單獨的虛擬機也可以運行。
  • 這種新的移植性在幾個方面有助於用戶使用:第一,它將軟件以前無法使用的地方徹底解鎖。第二,它可以在任何系統上運行相同的軟件。第三,軟件維護人員可以集中精力在單一平臺和一套依賴關係中編寫他們的軟件,這節省了大量的時間。
  • 保護你的機器:Docker就像是物理的牢房,容器裡的任何東西只能訪問它內部的東西。容器限制了一個程序對其他程序帶來的影響範圍、可訪問的數據和系統資源的影響範圍。下圖說明了容器內部運行和外部運行軟件的區別
"

目錄

  • Docker 前沿概述
  • 什麼是Docker?
  • Docker的基本概念
  • 容器(Container) -- 鏡像運行時的實體
  • 鏡像(Image) -- 一個特殊的文件系統
  • 倉庫(Repository) -- 集中存放鏡像文件的地方
  • 下面再來說說虛擬機
  • 容器和虛擬機的比較
  • Docker 解決了什麼樣的問題
  • 準備你的docker環境
  • 測試Docker 版本
  • 測試Docker 安裝
  • 回顧和備忘單

Docker 前沿概述

什麼是Docker?

Docker是基於Go語言實現的開源容器項目。Docker是一個為開發者和系統管理員提供的開發,部署和運行的容器應用程序。Linux使用容器開發應用程序的這種方式稱為容器化。Docker項目已加入Linux基金會,並遵循Apache2.0 協議,全部開源代碼再http://github.com/docker 項目倉庫進行維護。

Docker的基本概念

Docker中包括三個基本概念:容器(Container)、鏡像(Image)、倉庫(Repository)

容器(Container) -- 鏡像運行時的實體

先來看看容器較為官方的解釋:容器就是將軟件打包成基本單元,用來開發、交付和部署。

  • 容器鏡像是輕量的、可執行的軟件包 ,包含軟件運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設置。
  • 容器化軟件是基於Linux和Windows的應用,在任何環境中都能夠始終如一地運行。
  • 容器賦予了軟件獨立性,使其免受外在環境差異(例如,開發和預演環境的差異)的影響,從而有助於減少團隊間在相同環境上運行不同軟件時的衝突。

鏡像(Image) -- 一個特殊的文件系統

Docker中的Image鏡像相當於是一個文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數。

鏡像可以基於Dockerfile構建,Dockerfile是一個描述文件,裡面包含若干條命令,每條命令都會對基礎文件系統創建新的層次結構。

用戶可以通過編寫Dockerfile創建新的鏡像,也可以直接從類似github的Docker Hub上下載鏡像使用。

倉庫(Repository) -- 集中存放鏡像文件的地方

如果你使用過 git 和 github 就很容易理解Docker的倉庫概念。Docker倉庫相當於一個 github 上的代碼庫。

Docker 倉庫是用來包含鏡像的位置,Docker提供一個註冊服務器(Registry)來保存多個倉庫,每個倉庫又可以包含多個鏡像。

它們的範圍大小依次是 倉庫 > 鏡像 > 容器

下面再來說說虛擬機

前面說到,容器在Linux上本機運行,並與其他容器共享主機的內核。它運行一個獨立的進程,不佔用任何其他可執行文件的內存,使其輕量級。

相比之下,虛擬機運行一個完整的客戶操作系統,通過虛擬機管理程序對主機資源進行虛擬訪問。通常,VM提供的環境比大多數應用程序需要的資源更多。

下面這幅圖很好的表述了這一點

Docker 前沿概述

容器和虛擬機的比較

這或許也就能解釋 Docker 如此流行的原因

  • Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式(數分鐘)要快得多;
  • Docker容器對系統資源需求很少,一臺主機可以運行數千個Docker容器;
  • Docker通過類似Git設計理念的操作來方便用戶獲取、分發和更新應用鏡像,存儲複用,增量更新;
  • Docker通過Dockerfile支持靈活的自動化創新和部署機制,以提高工作效率,並標準化流程。

下圖是Docker容器技術與傳統虛擬機技術的比較:

特性容器虛擬機啟動速度秒級分鐘級性能接近原生較弱內存代價很小較多硬盤使用一般為MB一般為GB運行密度單機支持上千個容器一般為幾十個隔離性安全隔離完全隔離遷移性優秀一般

Docker 解決了什麼樣的問題

一項技術或者軟件的流行都是為了解決某種問題應用而生的,那麼話說回來了,Docker解決了什麼問題呢?

  • 組織有序:如果沒有Docker,一臺機器就可能像是一個裝滿垃圾的抽屜,應用程序依賴各種資源,一些應用程序依賴各種代碼庫,語音,圖像等。這種依賴關係很像分佈式各個系統的調用網一樣混亂不堪,如果用一張圖來表示一下,就像是下面這樣
Docker 前沿概述

但是Docker解決了這個問題,應用程序的各種依賴和環境都直接部署在Docker的容器中,起到隔離一切的目 的,就像是下圖所示的這樣

Docker 前沿概述

  • 提高可移植性:另一個軟件的問題是,應用程序的依賴不僅只是資源的依賴,還有可能是系統環境的依賴,操作系統之間的移植性一直是軟件用戶的一個主要問題。雖然Linux和OS X之間可能會有某種兼容性,但是在Windows環境下開發的軟件移植到Linux會很困難。
  • Docker解決了這一點,因為Docker可運行在原生的Linux環境下,在OS X和Windows環境中通過單獨的虛擬機也可以運行。
  • 這種新的移植性在幾個方面有助於用戶使用:第一,它將軟件以前無法使用的地方徹底解鎖。第二,它可以在任何系統上運行相同的軟件。第三,軟件維護人員可以集中精力在單一平臺和一套依賴關係中編寫他們的軟件,這節省了大量的時間。
  • 保護你的機器:Docker就像是物理的牢房,容器裡的任何東西只能訪問它內部的東西。容器限制了一個程序對其他程序帶來的影響範圍、可訪問的數據和系統資源的影響範圍。下圖說明了容器內部運行和外部運行軟件的區別
Docker 前沿概述

下面就開始你的Docker搭建之旅吧!!!

準備你的docker環境

我為你準備了下面四種環境的docker安裝教程,你可以根據教程來實現安裝

Ununtu Docker安裝:https://www.runoob.com/docker/ubuntu-docker-install.html

CentOS Docker安裝:https://www.runoob.com/docker/centos-docker-install.html

Windows Docker安裝:https://www.runoob.com/docker/windows-docker-install.html

MacOS Docker安裝:https://www.runoob.com/docker/macos-docker-install.html

測試Docker 版本

  1. 安裝完成後,運行docker --version 確保你的系統已經支持了docker
"

目錄

  • Docker 前沿概述
  • 什麼是Docker?
  • Docker的基本概念
  • 容器(Container) -- 鏡像運行時的實體
  • 鏡像(Image) -- 一個特殊的文件系統
  • 倉庫(Repository) -- 集中存放鏡像文件的地方
  • 下面再來說說虛擬機
  • 容器和虛擬機的比較
  • Docker 解決了什麼樣的問題
  • 準備你的docker環境
  • 測試Docker 版本
  • 測試Docker 安裝
  • 回顧和備忘單

Docker 前沿概述

什麼是Docker?

Docker是基於Go語言實現的開源容器項目。Docker是一個為開發者和系統管理員提供的開發,部署和運行的容器應用程序。Linux使用容器開發應用程序的這種方式稱為容器化。Docker項目已加入Linux基金會,並遵循Apache2.0 協議,全部開源代碼再http://github.com/docker 項目倉庫進行維護。

Docker的基本概念

Docker中包括三個基本概念:容器(Container)、鏡像(Image)、倉庫(Repository)

容器(Container) -- 鏡像運行時的實體

先來看看容器較為官方的解釋:容器就是將軟件打包成基本單元,用來開發、交付和部署。

  • 容器鏡像是輕量的、可執行的軟件包 ,包含軟件運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設置。
  • 容器化軟件是基於Linux和Windows的應用,在任何環境中都能夠始終如一地運行。
  • 容器賦予了軟件獨立性,使其免受外在環境差異(例如,開發和預演環境的差異)的影響,從而有助於減少團隊間在相同環境上運行不同軟件時的衝突。

鏡像(Image) -- 一個特殊的文件系統

Docker中的Image鏡像相當於是一個文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數。

鏡像可以基於Dockerfile構建,Dockerfile是一個描述文件,裡面包含若干條命令,每條命令都會對基礎文件系統創建新的層次結構。

用戶可以通過編寫Dockerfile創建新的鏡像,也可以直接從類似github的Docker Hub上下載鏡像使用。

倉庫(Repository) -- 集中存放鏡像文件的地方

如果你使用過 git 和 github 就很容易理解Docker的倉庫概念。Docker倉庫相當於一個 github 上的代碼庫。

Docker 倉庫是用來包含鏡像的位置,Docker提供一個註冊服務器(Registry)來保存多個倉庫,每個倉庫又可以包含多個鏡像。

它們的範圍大小依次是 倉庫 > 鏡像 > 容器

下面再來說說虛擬機

前面說到,容器在Linux上本機運行,並與其他容器共享主機的內核。它運行一個獨立的進程,不佔用任何其他可執行文件的內存,使其輕量級。

相比之下,虛擬機運行一個完整的客戶操作系統,通過虛擬機管理程序對主機資源進行虛擬訪問。通常,VM提供的環境比大多數應用程序需要的資源更多。

下面這幅圖很好的表述了這一點

Docker 前沿概述

容器和虛擬機的比較

這或許也就能解釋 Docker 如此流行的原因

  • Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式(數分鐘)要快得多;
  • Docker容器對系統資源需求很少,一臺主機可以運行數千個Docker容器;
  • Docker通過類似Git設計理念的操作來方便用戶獲取、分發和更新應用鏡像,存儲複用,增量更新;
  • Docker通過Dockerfile支持靈活的自動化創新和部署機制,以提高工作效率,並標準化流程。

下圖是Docker容器技術與傳統虛擬機技術的比較:

特性容器虛擬機啟動速度秒級分鐘級性能接近原生較弱內存代價很小較多硬盤使用一般為MB一般為GB運行密度單機支持上千個容器一般為幾十個隔離性安全隔離完全隔離遷移性優秀一般

Docker 解決了什麼樣的問題

一項技術或者軟件的流行都是為了解決某種問題應用而生的,那麼話說回來了,Docker解決了什麼問題呢?

  • 組織有序:如果沒有Docker,一臺機器就可能像是一個裝滿垃圾的抽屜,應用程序依賴各種資源,一些應用程序依賴各種代碼庫,語音,圖像等。這種依賴關係很像分佈式各個系統的調用網一樣混亂不堪,如果用一張圖來表示一下,就像是下面這樣
Docker 前沿概述

但是Docker解決了這個問題,應用程序的各種依賴和環境都直接部署在Docker的容器中,起到隔離一切的目 的,就像是下圖所示的這樣

Docker 前沿概述

  • 提高可移植性:另一個軟件的問題是,應用程序的依賴不僅只是資源的依賴,還有可能是系統環境的依賴,操作系統之間的移植性一直是軟件用戶的一個主要問題。雖然Linux和OS X之間可能會有某種兼容性,但是在Windows環境下開發的軟件移植到Linux會很困難。
  • Docker解決了這一點,因為Docker可運行在原生的Linux環境下,在OS X和Windows環境中通過單獨的虛擬機也可以運行。
  • 這種新的移植性在幾個方面有助於用戶使用:第一,它將軟件以前無法使用的地方徹底解鎖。第二,它可以在任何系統上運行相同的軟件。第三,軟件維護人員可以集中精力在單一平臺和一套依賴關係中編寫他們的軟件,這節省了大量的時間。
  • 保護你的機器:Docker就像是物理的牢房,容器裡的任何東西只能訪問它內部的東西。容器限制了一個程序對其他程序帶來的影響範圍、可訪問的數據和系統資源的影響範圍。下圖說明了容器內部運行和外部運行軟件的區別
Docker 前沿概述

下面就開始你的Docker搭建之旅吧!!!

準備你的docker環境

我為你準備了下面四種環境的docker安裝教程,你可以根據教程來實現安裝

Ununtu Docker安裝:https://www.runoob.com/docker/ubuntu-docker-install.html

CentOS Docker安裝:https://www.runoob.com/docker/centos-docker-install.html

Windows Docker安裝:https://www.runoob.com/docker/windows-docker-install.html

MacOS Docker安裝:https://www.runoob.com/docker/macos-docker-install.html

測試Docker 版本

  1. 安裝完成後,運行docker --version 確保你的系統已經支持了docker
Docker 前沿概述

  1. 運行docker info(沒有 - )以查看有關Docker安裝的更多詳細信息:
"

目錄

  • Docker 前沿概述
  • 什麼是Docker?
  • Docker的基本概念
  • 容器(Container) -- 鏡像運行時的實體
  • 鏡像(Image) -- 一個特殊的文件系統
  • 倉庫(Repository) -- 集中存放鏡像文件的地方
  • 下面再來說說虛擬機
  • 容器和虛擬機的比較
  • Docker 解決了什麼樣的問題
  • 準備你的docker環境
  • 測試Docker 版本
  • 測試Docker 安裝
  • 回顧和備忘單

Docker 前沿概述

什麼是Docker?

Docker是基於Go語言實現的開源容器項目。Docker是一個為開發者和系統管理員提供的開發,部署和運行的容器應用程序。Linux使用容器開發應用程序的這種方式稱為容器化。Docker項目已加入Linux基金會,並遵循Apache2.0 協議,全部開源代碼再http://github.com/docker 項目倉庫進行維護。

Docker的基本概念

Docker中包括三個基本概念:容器(Container)、鏡像(Image)、倉庫(Repository)

容器(Container) -- 鏡像運行時的實體

先來看看容器較為官方的解釋:容器就是將軟件打包成基本單元,用來開發、交付和部署。

  • 容器鏡像是輕量的、可執行的軟件包 ,包含軟件運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設置。
  • 容器化軟件是基於Linux和Windows的應用,在任何環境中都能夠始終如一地運行。
  • 容器賦予了軟件獨立性,使其免受外在環境差異(例如,開發和預演環境的差異)的影響,從而有助於減少團隊間在相同環境上運行不同軟件時的衝突。

鏡像(Image) -- 一個特殊的文件系統

Docker中的Image鏡像相當於是一個文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數。

鏡像可以基於Dockerfile構建,Dockerfile是一個描述文件,裡面包含若干條命令,每條命令都會對基礎文件系統創建新的層次結構。

用戶可以通過編寫Dockerfile創建新的鏡像,也可以直接從類似github的Docker Hub上下載鏡像使用。

倉庫(Repository) -- 集中存放鏡像文件的地方

如果你使用過 git 和 github 就很容易理解Docker的倉庫概念。Docker倉庫相當於一個 github 上的代碼庫。

Docker 倉庫是用來包含鏡像的位置,Docker提供一個註冊服務器(Registry)來保存多個倉庫,每個倉庫又可以包含多個鏡像。

它們的範圍大小依次是 倉庫 > 鏡像 > 容器

下面再來說說虛擬機

前面說到,容器在Linux上本機運行,並與其他容器共享主機的內核。它運行一個獨立的進程,不佔用任何其他可執行文件的內存,使其輕量級。

相比之下,虛擬機運行一個完整的客戶操作系統,通過虛擬機管理程序對主機資源進行虛擬訪問。通常,VM提供的環境比大多數應用程序需要的資源更多。

下面這幅圖很好的表述了這一點

Docker 前沿概述

容器和虛擬機的比較

這或許也就能解釋 Docker 如此流行的原因

  • Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式(數分鐘)要快得多;
  • Docker容器對系統資源需求很少,一臺主機可以運行數千個Docker容器;
  • Docker通過類似Git設計理念的操作來方便用戶獲取、分發和更新應用鏡像,存儲複用,增量更新;
  • Docker通過Dockerfile支持靈活的自動化創新和部署機制,以提高工作效率,並標準化流程。

下圖是Docker容器技術與傳統虛擬機技術的比較:

特性容器虛擬機啟動速度秒級分鐘級性能接近原生較弱內存代價很小較多硬盤使用一般為MB一般為GB運行密度單機支持上千個容器一般為幾十個隔離性安全隔離完全隔離遷移性優秀一般

Docker 解決了什麼樣的問題

一項技術或者軟件的流行都是為了解決某種問題應用而生的,那麼話說回來了,Docker解決了什麼問題呢?

  • 組織有序:如果沒有Docker,一臺機器就可能像是一個裝滿垃圾的抽屜,應用程序依賴各種資源,一些應用程序依賴各種代碼庫,語音,圖像等。這種依賴關係很像分佈式各個系統的調用網一樣混亂不堪,如果用一張圖來表示一下,就像是下面這樣
Docker 前沿概述

但是Docker解決了這個問題,應用程序的各種依賴和環境都直接部署在Docker的容器中,起到隔離一切的目 的,就像是下圖所示的這樣

Docker 前沿概述

  • 提高可移植性:另一個軟件的問題是,應用程序的依賴不僅只是資源的依賴,還有可能是系統環境的依賴,操作系統之間的移植性一直是軟件用戶的一個主要問題。雖然Linux和OS X之間可能會有某種兼容性,但是在Windows環境下開發的軟件移植到Linux會很困難。
  • Docker解決了這一點,因為Docker可運行在原生的Linux環境下,在OS X和Windows環境中通過單獨的虛擬機也可以運行。
  • 這種新的移植性在幾個方面有助於用戶使用:第一,它將軟件以前無法使用的地方徹底解鎖。第二,它可以在任何系統上運行相同的軟件。第三,軟件維護人員可以集中精力在單一平臺和一套依賴關係中編寫他們的軟件,這節省了大量的時間。
  • 保護你的機器:Docker就像是物理的牢房,容器裡的任何東西只能訪問它內部的東西。容器限制了一個程序對其他程序帶來的影響範圍、可訪問的數據和系統資源的影響範圍。下圖說明了容器內部運行和外部運行軟件的區別
Docker 前沿概述

下面就開始你的Docker搭建之旅吧!!!

準備你的docker環境

我為你準備了下面四種環境的docker安裝教程,你可以根據教程來實現安裝

Ununtu Docker安裝:https://www.runoob.com/docker/ubuntu-docker-install.html

CentOS Docker安裝:https://www.runoob.com/docker/centos-docker-install.html

Windows Docker安裝:https://www.runoob.com/docker/windows-docker-install.html

MacOS Docker安裝:https://www.runoob.com/docker/macos-docker-install.html

測試Docker 版本

  1. 安裝完成後,運行docker --version 確保你的系統已經支持了docker
Docker 前沿概述

  1. 運行docker info(沒有 - )以查看有關Docker安裝的更多詳細信息:
Docker 前沿概述

等等

測試Docker 安裝

  1. 測試你的安裝工作通過運行一個簡單的docker 映像,hello-world:
"

目錄

  • Docker 前沿概述
  • 什麼是Docker?
  • Docker的基本概念
  • 容器(Container) -- 鏡像運行時的實體
  • 鏡像(Image) -- 一個特殊的文件系統
  • 倉庫(Repository) -- 集中存放鏡像文件的地方
  • 下面再來說說虛擬機
  • 容器和虛擬機的比較
  • Docker 解決了什麼樣的問題
  • 準備你的docker環境
  • 測試Docker 版本
  • 測試Docker 安裝
  • 回顧和備忘單

Docker 前沿概述

什麼是Docker?

Docker是基於Go語言實現的開源容器項目。Docker是一個為開發者和系統管理員提供的開發,部署和運行的容器應用程序。Linux使用容器開發應用程序的這種方式稱為容器化。Docker項目已加入Linux基金會,並遵循Apache2.0 協議,全部開源代碼再http://github.com/docker 項目倉庫進行維護。

Docker的基本概念

Docker中包括三個基本概念:容器(Container)、鏡像(Image)、倉庫(Repository)

容器(Container) -- 鏡像運行時的實體

先來看看容器較為官方的解釋:容器就是將軟件打包成基本單元,用來開發、交付和部署。

  • 容器鏡像是輕量的、可執行的軟件包 ,包含軟件運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設置。
  • 容器化軟件是基於Linux和Windows的應用,在任何環境中都能夠始終如一地運行。
  • 容器賦予了軟件獨立性,使其免受外在環境差異(例如,開發和預演環境的差異)的影響,從而有助於減少團隊間在相同環境上運行不同軟件時的衝突。

鏡像(Image) -- 一個特殊的文件系統

Docker中的Image鏡像相當於是一個文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數。

鏡像可以基於Dockerfile構建,Dockerfile是一個描述文件,裡面包含若干條命令,每條命令都會對基礎文件系統創建新的層次結構。

用戶可以通過編寫Dockerfile創建新的鏡像,也可以直接從類似github的Docker Hub上下載鏡像使用。

倉庫(Repository) -- 集中存放鏡像文件的地方

如果你使用過 git 和 github 就很容易理解Docker的倉庫概念。Docker倉庫相當於一個 github 上的代碼庫。

Docker 倉庫是用來包含鏡像的位置,Docker提供一個註冊服務器(Registry)來保存多個倉庫,每個倉庫又可以包含多個鏡像。

它們的範圍大小依次是 倉庫 > 鏡像 > 容器

下面再來說說虛擬機

前面說到,容器在Linux上本機運行,並與其他容器共享主機的內核。它運行一個獨立的進程,不佔用任何其他可執行文件的內存,使其輕量級。

相比之下,虛擬機運行一個完整的客戶操作系統,通過虛擬機管理程序對主機資源進行虛擬訪問。通常,VM提供的環境比大多數應用程序需要的資源更多。

下面這幅圖很好的表述了這一點

Docker 前沿概述

容器和虛擬機的比較

這或許也就能解釋 Docker 如此流行的原因

  • Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式(數分鐘)要快得多;
  • Docker容器對系統資源需求很少,一臺主機可以運行數千個Docker容器;
  • Docker通過類似Git設計理念的操作來方便用戶獲取、分發和更新應用鏡像,存儲複用,增量更新;
  • Docker通過Dockerfile支持靈活的自動化創新和部署機制,以提高工作效率,並標準化流程。

下圖是Docker容器技術與傳統虛擬機技術的比較:

特性容器虛擬機啟動速度秒級分鐘級性能接近原生較弱內存代價很小較多硬盤使用一般為MB一般為GB運行密度單機支持上千個容器一般為幾十個隔離性安全隔離完全隔離遷移性優秀一般

Docker 解決了什麼樣的問題

一項技術或者軟件的流行都是為了解決某種問題應用而生的,那麼話說回來了,Docker解決了什麼問題呢?

  • 組織有序:如果沒有Docker,一臺機器就可能像是一個裝滿垃圾的抽屜,應用程序依賴各種資源,一些應用程序依賴各種代碼庫,語音,圖像等。這種依賴關係很像分佈式各個系統的調用網一樣混亂不堪,如果用一張圖來表示一下,就像是下面這樣
Docker 前沿概述

但是Docker解決了這個問題,應用程序的各種依賴和環境都直接部署在Docker的容器中,起到隔離一切的目 的,就像是下圖所示的這樣

Docker 前沿概述

  • 提高可移植性:另一個軟件的問題是,應用程序的依賴不僅只是資源的依賴,還有可能是系統環境的依賴,操作系統之間的移植性一直是軟件用戶的一個主要問題。雖然Linux和OS X之間可能會有某種兼容性,但是在Windows環境下開發的軟件移植到Linux會很困難。
  • Docker解決了這一點,因為Docker可運行在原生的Linux環境下,在OS X和Windows環境中通過單獨的虛擬機也可以運行。
  • 這種新的移植性在幾個方面有助於用戶使用:第一,它將軟件以前無法使用的地方徹底解鎖。第二,它可以在任何系統上運行相同的軟件。第三,軟件維護人員可以集中精力在單一平臺和一套依賴關係中編寫他們的軟件,這節省了大量的時間。
  • 保護你的機器:Docker就像是物理的牢房,容器裡的任何東西只能訪問它內部的東西。容器限制了一個程序對其他程序帶來的影響範圍、可訪問的數據和系統資源的影響範圍。下圖說明了容器內部運行和外部運行軟件的區別
Docker 前沿概述

下面就開始你的Docker搭建之旅吧!!!

準備你的docker環境

我為你準備了下面四種環境的docker安裝教程,你可以根據教程來實現安裝

Ununtu Docker安裝:https://www.runoob.com/docker/ubuntu-docker-install.html

CentOS Docker安裝:https://www.runoob.com/docker/centos-docker-install.html

Windows Docker安裝:https://www.runoob.com/docker/windows-docker-install.html

MacOS Docker安裝:https://www.runoob.com/docker/macos-docker-install.html

測試Docker 版本

  1. 安裝完成後,運行docker --version 確保你的系統已經支持了docker
Docker 前沿概述

  1. 運行docker info(沒有 - )以查看有關Docker安裝的更多詳細信息:
Docker 前沿概述

等等

測試Docker 安裝

  1. 測試你的安裝工作通過運行一個簡單的docker 映像,hello-world:
Docker 前沿概述

  1. 列出來你機器上下載的hello-world 映像
"

目錄

  • Docker 前沿概述
  • 什麼是Docker?
  • Docker的基本概念
  • 容器(Container) -- 鏡像運行時的實體
  • 鏡像(Image) -- 一個特殊的文件系統
  • 倉庫(Repository) -- 集中存放鏡像文件的地方
  • 下面再來說說虛擬機
  • 容器和虛擬機的比較
  • Docker 解決了什麼樣的問題
  • 準備你的docker環境
  • 測試Docker 版本
  • 測試Docker 安裝
  • 回顧和備忘單

Docker 前沿概述

什麼是Docker?

Docker是基於Go語言實現的開源容器項目。Docker是一個為開發者和系統管理員提供的開發,部署和運行的容器應用程序。Linux使用容器開發應用程序的這種方式稱為容器化。Docker項目已加入Linux基金會,並遵循Apache2.0 協議,全部開源代碼再http://github.com/docker 項目倉庫進行維護。

Docker的基本概念

Docker中包括三個基本概念:容器(Container)、鏡像(Image)、倉庫(Repository)

容器(Container) -- 鏡像運行時的實體

先來看看容器較為官方的解釋:容器就是將軟件打包成基本單元,用來開發、交付和部署。

  • 容器鏡像是輕量的、可執行的軟件包 ,包含軟件運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設置。
  • 容器化軟件是基於Linux和Windows的應用,在任何環境中都能夠始終如一地運行。
  • 容器賦予了軟件獨立性,使其免受外在環境差異(例如,開發和預演環境的差異)的影響,從而有助於減少團隊間在相同環境上運行不同軟件時的衝突。

鏡像(Image) -- 一個特殊的文件系統

Docker中的Image鏡像相當於是一個文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數。

鏡像可以基於Dockerfile構建,Dockerfile是一個描述文件,裡面包含若干條命令,每條命令都會對基礎文件系統創建新的層次結構。

用戶可以通過編寫Dockerfile創建新的鏡像,也可以直接從類似github的Docker Hub上下載鏡像使用。

倉庫(Repository) -- 集中存放鏡像文件的地方

如果你使用過 git 和 github 就很容易理解Docker的倉庫概念。Docker倉庫相當於一個 github 上的代碼庫。

Docker 倉庫是用來包含鏡像的位置,Docker提供一個註冊服務器(Registry)來保存多個倉庫,每個倉庫又可以包含多個鏡像。

它們的範圍大小依次是 倉庫 > 鏡像 > 容器

下面再來說說虛擬機

前面說到,容器在Linux上本機運行,並與其他容器共享主機的內核。它運行一個獨立的進程,不佔用任何其他可執行文件的內存,使其輕量級。

相比之下,虛擬機運行一個完整的客戶操作系統,通過虛擬機管理程序對主機資源進行虛擬訪問。通常,VM提供的環境比大多數應用程序需要的資源更多。

下面這幅圖很好的表述了這一點

Docker 前沿概述

容器和虛擬機的比較

這或許也就能解釋 Docker 如此流行的原因

  • Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式(數分鐘)要快得多;
  • Docker容器對系統資源需求很少,一臺主機可以運行數千個Docker容器;
  • Docker通過類似Git設計理念的操作來方便用戶獲取、分發和更新應用鏡像,存儲複用,增量更新;
  • Docker通過Dockerfile支持靈活的自動化創新和部署機制,以提高工作效率,並標準化流程。

下圖是Docker容器技術與傳統虛擬機技術的比較:

特性容器虛擬機啟動速度秒級分鐘級性能接近原生較弱內存代價很小較多硬盤使用一般為MB一般為GB運行密度單機支持上千個容器一般為幾十個隔離性安全隔離完全隔離遷移性優秀一般

Docker 解決了什麼樣的問題

一項技術或者軟件的流行都是為了解決某種問題應用而生的,那麼話說回來了,Docker解決了什麼問題呢?

  • 組織有序:如果沒有Docker,一臺機器就可能像是一個裝滿垃圾的抽屜,應用程序依賴各種資源,一些應用程序依賴各種代碼庫,語音,圖像等。這種依賴關係很像分佈式各個系統的調用網一樣混亂不堪,如果用一張圖來表示一下,就像是下面這樣
Docker 前沿概述

但是Docker解決了這個問題,應用程序的各種依賴和環境都直接部署在Docker的容器中,起到隔離一切的目 的,就像是下圖所示的這樣

Docker 前沿概述

  • 提高可移植性:另一個軟件的問題是,應用程序的依賴不僅只是資源的依賴,還有可能是系統環境的依賴,操作系統之間的移植性一直是軟件用戶的一個主要問題。雖然Linux和OS X之間可能會有某種兼容性,但是在Windows環境下開發的軟件移植到Linux會很困難。
  • Docker解決了這一點,因為Docker可運行在原生的Linux環境下,在OS X和Windows環境中通過單獨的虛擬機也可以運行。
  • 這種新的移植性在幾個方面有助於用戶使用:第一,它將軟件以前無法使用的地方徹底解鎖。第二,它可以在任何系統上運行相同的軟件。第三,軟件維護人員可以集中精力在單一平臺和一套依賴關係中編寫他們的軟件,這節省了大量的時間。
  • 保護你的機器:Docker就像是物理的牢房,容器裡的任何東西只能訪問它內部的東西。容器限制了一個程序對其他程序帶來的影響範圍、可訪問的數據和系統資源的影響範圍。下圖說明了容器內部運行和外部運行軟件的區別
Docker 前沿概述

下面就開始你的Docker搭建之旅吧!!!

準備你的docker環境

我為你準備了下面四種環境的docker安裝教程,你可以根據教程來實現安裝

Ununtu Docker安裝:https://www.runoob.com/docker/ubuntu-docker-install.html

CentOS Docker安裝:https://www.runoob.com/docker/centos-docker-install.html

Windows Docker安裝:https://www.runoob.com/docker/windows-docker-install.html

MacOS Docker安裝:https://www.runoob.com/docker/macos-docker-install.html

測試Docker 版本

  1. 安裝完成後,運行docker --version 確保你的系統已經支持了docker
Docker 前沿概述

  1. 運行docker info(沒有 - )以查看有關Docker安裝的更多詳細信息:
Docker 前沿概述

等等

測試Docker 安裝

  1. 測試你的安裝工作通過運行一個簡單的docker 映像,hello-world:
Docker 前沿概述

  1. 列出來你機器上下載的hello-world 映像
Docker 前沿概述

  1. 列出顯示其消息後退出的hello-world容器(由圖像生成)。如果它仍在運行,則不需要--all選項:
"

目錄

  • Docker 前沿概述
  • 什麼是Docker?
  • Docker的基本概念
  • 容器(Container) -- 鏡像運行時的實體
  • 鏡像(Image) -- 一個特殊的文件系統
  • 倉庫(Repository) -- 集中存放鏡像文件的地方
  • 下面再來說說虛擬機
  • 容器和虛擬機的比較
  • Docker 解決了什麼樣的問題
  • 準備你的docker環境
  • 測試Docker 版本
  • 測試Docker 安裝
  • 回顧和備忘單

Docker 前沿概述

什麼是Docker?

Docker是基於Go語言實現的開源容器項目。Docker是一個為開發者和系統管理員提供的開發,部署和運行的容器應用程序。Linux使用容器開發應用程序的這種方式稱為容器化。Docker項目已加入Linux基金會,並遵循Apache2.0 協議,全部開源代碼再http://github.com/docker 項目倉庫進行維護。

Docker的基本概念

Docker中包括三個基本概念:容器(Container)、鏡像(Image)、倉庫(Repository)

容器(Container) -- 鏡像運行時的實體

先來看看容器較為官方的解釋:容器就是將軟件打包成基本單元,用來開發、交付和部署。

  • 容器鏡像是輕量的、可執行的軟件包 ,包含軟件運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設置。
  • 容器化軟件是基於Linux和Windows的應用,在任何環境中都能夠始終如一地運行。
  • 容器賦予了軟件獨立性,使其免受外在環境差異(例如,開發和預演環境的差異)的影響,從而有助於減少團隊間在相同環境上運行不同軟件時的衝突。

鏡像(Image) -- 一個特殊的文件系統

Docker中的Image鏡像相當於是一個文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數。

鏡像可以基於Dockerfile構建,Dockerfile是一個描述文件,裡面包含若干條命令,每條命令都會對基礎文件系統創建新的層次結構。

用戶可以通過編寫Dockerfile創建新的鏡像,也可以直接從類似github的Docker Hub上下載鏡像使用。

倉庫(Repository) -- 集中存放鏡像文件的地方

如果你使用過 git 和 github 就很容易理解Docker的倉庫概念。Docker倉庫相當於一個 github 上的代碼庫。

Docker 倉庫是用來包含鏡像的位置,Docker提供一個註冊服務器(Registry)來保存多個倉庫,每個倉庫又可以包含多個鏡像。

它們的範圍大小依次是 倉庫 > 鏡像 > 容器

下面再來說說虛擬機

前面說到,容器在Linux上本機運行,並與其他容器共享主機的內核。它運行一個獨立的進程,不佔用任何其他可執行文件的內存,使其輕量級。

相比之下,虛擬機運行一個完整的客戶操作系統,通過虛擬機管理程序對主機資源進行虛擬訪問。通常,VM提供的環境比大多數應用程序需要的資源更多。

下面這幅圖很好的表述了這一點

Docker 前沿概述

容器和虛擬機的比較

這或許也就能解釋 Docker 如此流行的原因

  • Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式(數分鐘)要快得多;
  • Docker容器對系統資源需求很少,一臺主機可以運行數千個Docker容器;
  • Docker通過類似Git設計理念的操作來方便用戶獲取、分發和更新應用鏡像,存儲複用,增量更新;
  • Docker通過Dockerfile支持靈活的自動化創新和部署機制,以提高工作效率,並標準化流程。

下圖是Docker容器技術與傳統虛擬機技術的比較:

特性容器虛擬機啟動速度秒級分鐘級性能接近原生較弱內存代價很小較多硬盤使用一般為MB一般為GB運行密度單機支持上千個容器一般為幾十個隔離性安全隔離完全隔離遷移性優秀一般

Docker 解決了什麼樣的問題

一項技術或者軟件的流行都是為了解決某種問題應用而生的,那麼話說回來了,Docker解決了什麼問題呢?

  • 組織有序:如果沒有Docker,一臺機器就可能像是一個裝滿垃圾的抽屜,應用程序依賴各種資源,一些應用程序依賴各種代碼庫,語音,圖像等。這種依賴關係很像分佈式各個系統的調用網一樣混亂不堪,如果用一張圖來表示一下,就像是下面這樣
Docker 前沿概述

但是Docker解決了這個問題,應用程序的各種依賴和環境都直接部署在Docker的容器中,起到隔離一切的目 的,就像是下圖所示的這樣

Docker 前沿概述

  • 提高可移植性:另一個軟件的問題是,應用程序的依賴不僅只是資源的依賴,還有可能是系統環境的依賴,操作系統之間的移植性一直是軟件用戶的一個主要問題。雖然Linux和OS X之間可能會有某種兼容性,但是在Windows環境下開發的軟件移植到Linux會很困難。
  • Docker解決了這一點,因為Docker可運行在原生的Linux環境下,在OS X和Windows環境中通過單獨的虛擬機也可以運行。
  • 這種新的移植性在幾個方面有助於用戶使用:第一,它將軟件以前無法使用的地方徹底解鎖。第二,它可以在任何系統上運行相同的軟件。第三,軟件維護人員可以集中精力在單一平臺和一套依賴關係中編寫他們的軟件,這節省了大量的時間。
  • 保護你的機器:Docker就像是物理的牢房,容器裡的任何東西只能訪問它內部的東西。容器限制了一個程序對其他程序帶來的影響範圍、可訪問的數據和系統資源的影響範圍。下圖說明了容器內部運行和外部運行軟件的區別
Docker 前沿概述

下面就開始你的Docker搭建之旅吧!!!

準備你的docker環境

我為你準備了下面四種環境的docker安裝教程,你可以根據教程來實現安裝

Ununtu Docker安裝:https://www.runoob.com/docker/ubuntu-docker-install.html

CentOS Docker安裝:https://www.runoob.com/docker/centos-docker-install.html

Windows Docker安裝:https://www.runoob.com/docker/windows-docker-install.html

MacOS Docker安裝:https://www.runoob.com/docker/macos-docker-install.html

測試Docker 版本

  1. 安裝完成後,運行docker --version 確保你的系統已經支持了docker
Docker 前沿概述

  1. 運行docker info(沒有 - )以查看有關Docker安裝的更多詳細信息:
Docker 前沿概述

等等

測試Docker 安裝

  1. 測試你的安裝工作通過運行一個簡單的docker 映像,hello-world:
Docker 前沿概述

  1. 列出來你機器上下載的hello-world 映像
Docker 前沿概述

  1. 列出顯示其消息後退出的hello-world容器(由圖像生成)。如果它仍在運行,則不需要--all選項:
Docker 前沿概述

回顧和備忘單

列出Docker CLI 命令

docker
docker container --help

顯示docker version 和 info

docker --version
docker version
docker info

執行docker圖像

docker run hello-world

列出docker 映像

docker image ls

列出docker容器

docker container ls
docker container ls --all
docker container ls -aq

參考:

http://dockone.io/article/6051

DOCKER 概念及基本用法

《Docker實戰》

作者:cxuan

出處:https://www.cnblogs.com/cxuanBlog/

如果文中有什麼錯誤,歡迎指出。以免更多的人被誤導。

"

相關推薦

推薦中...