1. 程式人生 > >Docker 入門及安裝[Docker 系列-1]

Docker 入門及安裝[Docker 系列-1]

docker 如日中天,這不是單純的炒概念,docker 確確實實解決了開發與運維的痛點,因此在企業開發中得到了非常廣泛的使用,本文對於 docker 的這些基本知識點再做一些簡單回顧。

什麼是 docker

根據 wikipedia 中的介紹:

Docker 是一個開放原始碼軟體專案,讓應用程式佈署在軟體容器下的工作可以自動化進行,藉此在 Linux 作業系統上,提供一個額外的軟體抽象層,以及作業系統層虛擬化的自動管理機制。
Docker 利用 Linux 核心中的資源分脫機制,例如 cgroups ,以及 Linux 核心名字空間(name space),來建立獨立的軟體容器(containers)。這可以在單一 Linux 實體下運作,避免啟動一個虛擬機器造成的額外負擔。Linux 核心對名字空間的支援完全隔離了工作環境中應用程式的視野,包括程序樹、網路、使用者 ID 與掛載檔案系統,而核心的 cgroup 提供資源隔離,包括 CPU 、儲存器、block I/O 與網路。從 0.9 版本起,Dockers 在使用抽象虛擬是經由 libvirt 的 LXC 與 systemd - nspawn 提供介面的基礎上,開始包括 libcontainer 庫做為以自己的方式開始直接使用由 Linux 核心提供的虛擬化的設施。

依據行業分析公司“451研究”:“Dockers 是有能力打包應用程式及其虛擬容器,可以在任何 Linux 伺服器上執行的依賴性工具,這有助於實現靈活性和便攜性,應用程式在任何地方都可以執行,無論是公有云、私有云、單機等。” 。

這裡的介紹有點繞口,讓我來介紹下 docker 解決了哪些痛點:

  1. 簡化環境管理

    傳統的軟體開發與釋出環境複雜,配置繁瑣,經常有讀者在微信上問:我的程式碼開發環境可以執行,一旦部署到伺服器上就執行不了了。這個問題很常見,也確實很煩人,但是問題總要解決,開發環境、測試環境、生產環境,每個環節都有可能出現這樣那樣的問題,如果能夠在各個環境中實現一鍵部署,就會方便很多,例如一鍵安裝 linux 、一鍵安裝 mysql、一鍵安裝 nginx 等,docker 徹底解決了這個問題。

  2. 虛擬化更加輕量級

    說到容器,說到虛擬化,很多人總會想到虛擬機器,想到 VMware、VirtualBox 等工具,不同於這些虛擬技術,docker 虛擬化更加輕量級,傳統的虛擬機器都是先虛擬出一個作業系統,然後在作業系統上完成各種各樣的配置,這樣並不能充分的利用物理機的效能,docker 則是一種作業系統級別的虛擬技術,它執行在作業系統之上的使用者空間,所有的容器都共用一個系統核心甚至公共庫,容器引擎提供了程序級別的隔離,讓每個容器都像執行在單獨的系統之上,但是又能夠共享很多底層資源。因此 docker 更為輕量、快速和易於管理。

  3. 程式可移植

    有了前面介紹的兩個特點,程式可移植就是順理成章的事情了。

docker 和虛擬機器

前面介紹了 docker 與傳統虛擬機器的差異,通過下表再來詳細瞭解下這種差異:

docker 虛擬機器
相同點 1. 都可在不同的主機之間遷移
2. 都具備 root 許可權
3. 都可以遠端控制
4. 都有備份、回滾操作
作業系統 在效能上有優勢,可以輕易的執行多個作業系統 可以安裝任何系統,但是效能不及容器
原理 和宿主機共享核心,所有容器執行在容器引擎之上,容器並非一個完整的作業系統,所有容器共享作業系統,在程序級進行隔離 每一個虛擬機器都建立在虛擬的硬體之上,提供指令級的虛擬,具備一個完整的作業系統
優點 高效、集中。一個硬體節點可以執行數以百計的的容器,非常節省資源,QoS 會盡量滿足,但不保證一定滿足。核心由提供者升級,服務由服務提供者管理 對作業系統具有絕對許可權,對系統版本和系統升級具有完全的管理許可權。具有一整套的的資源:CPU、RAM 和磁碟。QoS 是有保證的,每一個虛擬機器就像一個真實的物理機一樣,可以實現不同的作業系統執行在同一物理節點上。
資源管理 彈性資源分配:資源可以在沒有關閉容器的情況下新增,資料卷也無需重新分配大小 虛擬機器需要重啟,虛擬機器裡邊的作業系統需要處理新加入的資源,如磁碟等,都需要重新分割槽。
遠端管理 根據作業系統的不同,可以通過 shell 或者遠端桌面進行 遠端控制由虛擬化平臺提供,可以在虛擬機器啟動之前連線
缺點 對核心沒有控制權限,只有容器的提供者具備升級許可權。只有一個核心執行在物理節點上,幾乎不能實現不同的作業系統混合。容器提供者一般僅提供少數的幾個作業系統 每一臺虛擬機器都具有更大的負載,耗費更多的資源,使用者需要全權維護和管理。一臺物理機上能夠執行的虛擬機器非常有限
配置 快速,基本上是一鍵配置 配置時間長
啟動時間 秒級 分鐘級
硬碟使用 MB GB
效能 接近原生態 弱於原生態
系統支援數量 單機支援上千個 一般不多於幾十個

docker 與傳統容器

不同與傳統容器,docker 早起基於 LXC,後來基於自研的 libContainer,docker 對於傳統容器做了許多優化,如下:

  1. 跨平臺的可移植性
  2. 面向應用
  3. 版本控制
  4. 元件複用
  5. 共享性
  6. 工具生態系統

docker 應用場景

  1. 加速本地開發
  2. 自動打包和部署應用
  3. 建立輕量、私有的PaaS環境
  4. 自動化測試和持續整合/部署
  5. 部署並擴充套件Web應用、資料庫和後端伺服器
  6. 建立安全沙盒
  7. 輕量級的桌面虛擬化

docker 核心元件

docker 中有三大核心元件:

  • 映象

映象是一個只讀的靜態模版,它儲存了容器需要的環境和應用的執行程式碼,可以將映象看成是容器的程式碼,當代碼執行起來之後,就成了容器,映象和容器的關係也類似於程式和程序的關係。

  • 容器

容器是一個執行時環境,是映象的一個執行狀態,它是映象執行的動態表現。

庫是一個特定的使用者儲存映象的目錄,一個使用者可以建立多個庫來儲存自己的映象。

docker相關技術

  1. 隔離性
  2. 可度量性
  3. 移植性
  4. 安全性

docker 安裝

相對而言,Linux 上安裝 Docker 是最容易的,其次是 Mac ,最後是 Windows ,Windows 因此要裝的東西比較多,官方也提供了兩個不同的安裝包,支援不同的 Windows 的不同版本,一個是針對 Win10 的安裝載入程式,還有一個是相容性較好的 Toolbox ,但是在 Windows 上執行 Docker ,後期在虛擬目錄等方面還會遇到各種問題,所以這裡鬆哥是非常不建議大家在 Windows 中安裝 Docker ,有 Mac 的上 Mac (Mac 上安裝 Docker 就像安裝普通軟體一樣),沒有 Mac 的裝 Linux 虛擬機器,再裝 Docker 即可,這裡我就先以 CentOS 上安裝 Docker 為例,來說說 Docker 安裝。

分別執行如下安裝命令:

# 首先安裝 Docker
yum -y install docker

# 然後啟動 Docker 服務
service docker start

# 測試安裝是否成功
docker -v

安裝完成後,看到如下頁面,表示安裝成功:

總結

本文主要向大家介紹了 Docker 的基本概念以及 Docker 的安裝 ,下篇文章我們向大家介紹 Docker 中基本的容器操作。有問題歡迎留言討論。

參考資料:

[1] 曾金龍,肖新華,劉清.Docker開發實踐[M].北京:人民郵電出版社,2015.

關注公眾號牧碼小子,專注於 Spring Boot+微服務以及前後端分離等全棧技術,定期視訊教程分享,關注後回覆 Java ,領取鬆哥為你精心準備的 Java 乾貨!

相關推薦

Docker 入門安裝[Docker 系列-1]

docker 如日中天,這不是單純的炒概念,docker 確確實實解決了開發與運維的痛點,因此在企業開發中得到了非常廣泛的使用,本文對於 docker 的這些基本知識點再做一些簡單回顧。 什麼是 docker 根據 wikipedia 中的介紹: Docker 是一個開放原始碼軟體專案,讓應用程式佈署在軟

docker入門安裝jdk

1、優勢 有了虛擬機器為什麼選擇docker呢? 簡要對比如下: 2.理解docker docker包括三個基本概念:映象、容器、倉庫 基本概念理解之後,docker也就很簡單了 三者關係如下: 3.基本使用 a.從 Docker 映象倉庫獲取映象 docker pu

docker入門安裝tomcat

 Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從Apache2.0協議開源。Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。 一、安裝  推薦使用centOS 7以上版本安裝

1Docker簡介安裝

目錄 1、Docker簡介 1.1、什麼是虛擬化 1.2、什麼是Docker 1.3 容器與虛擬機器比較 1.4、Docker 元件 1.4.1、Docker伺服器與客戶端 1.4.2、Docker映象與容器 1.4.3、Registry(註冊中心) 2、Dock

Docker系列入門篇-安裝docker

Docker 提供了兩個版本:社群版 (CE) 和企業版 (EE)。 Docker 社群版 (CE) 是開發人員和小型團隊開始使用 Docker 並嘗試使用基於容器的應用的理想之選,所以這裡我們來說一下Docker社群版的安裝 作業系統要求 64位 CentOS 這裡只說明cento

Docker系列(一)Docker簡介安裝

一、Docker簡介 Docker是一個開源的容器引擎,它有助於更快地交付應用。Docker可將應用程式和基礎設施隔離,並且能將基礎設施當作程式一樣進行管理。使用Docker,可更快地打包、測試以及部署應用程式,並可以縮短從編寫到部署執行程式碼的週期。 Do

centos7卸載安裝docker 記錄

docker重新安裝前卸載舊版docker(本機已經安裝舊版,故卸載後重新安裝) rpm list installed|grep docker 或者使用該命令 rpm -qa|grep docker //查看已經安裝的docker安裝包,列出入校內容 docker.x86_64 2:1.12.6-1

Docker入門知識總結-學習筆記1

nic yum 數量 python pan over mirror 官方文檔 mes Docker容器技術是基於Go語言實現的雲開源項目,誕生於2013年,是一種高效、敏捷、和輕量級的容器解決方案,發布於2013年。Docker基於Linux平臺上的多項開源技術,其中最重要

Centos7配置Docker Swarm安裝Portainer

創建集群 add blog RKE rtai pre -c 服務器 rest 一、創建集群 1、初始化manager節點(xxx為manager的ip地址) docker swarm init --advertise-addr xxx.xxx.xxx.xxx 會輸出以下內容

Docker實戰之安裝配置HBase-1.2.2完全分散式叢集

環境配置 VM:VMware Workstation OS:Ubuntu 14.04  LTS HBASE:hbase-1.2.2 HBase叢集規劃 172.17.0.5   hmaster  172.17.0.6&

docker入門安裝

原文地址:https://renguangli.com/articles/docker-install Centos下安裝docker 系統要求:64為作業系統,核心版本至少為3.10 docker目前支援Centos6.5及以後的版本 yum安裝 執行以下

Docker入門基本指令

Docker概念 Docker就相當於一個Github賬號,不過最開始的工程不能自己建立,要從DockerHub這個中央倉庫pull過來,這個工程Docker稱之為image,這個image竟然是個linux系統!!這是什麼概念?!以前我可以傳傳程式碼帶Github上就覺著很厲害了,現在我竟然可以有無限個作

002.Docker版本安裝

一 docker版本 Docker 從 17.03版本之後分為 CE(Community Edition) 和 EE(Enterprise Edition)。

Docker入門基礎學習整理(1

Docker入門基礎學習整理 維基百科docker 基礎理論知識學習 維基百科docker 基礎理論知識學習 容器是一種基礎工具;泛指任何可以用於容納其他物品的工具,可以部分或完全封閉,被用於容納、儲存、運輸物品

Docker入門安裝

最近Linux上安裝軟體越來越多采用Docker,方便快捷,這邊我們從幾個簡單的問題,幫助小夥伴們入門。 什麼是Docker?        Docker 是一個開源專案,誕生於 2013 年初,最初是 dotCloud 公司內部的一個業餘專案。它基於 Google

Linux中修改docker映象源安裝docker

  1、首先備份系統自帶yum源配置檔案/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 2、進入yum源配置檔案

Docker基礎安裝

一、簡介 Docker是基於Go語言實現的雲開源專案。主要目標是“Build,Ship and Run Any App,Anywhere”,也就是通過對應用元件的封裝、分發、部署、執行等生命週期的管理,使使用者的APP(Web應用或資料庫應用等等)及其執行環境能夠做到“一次封裝,到處執行

Docker入門常用命令

官方文件:http://docs.master.dockerproject.org/engine/installation/linux/ubuntulinux/ 1.安裝Docker 1.準備工作: 1.檢查Linux核心,版本必須在3.8以上 $ una

Docker入門》:安裝ubuntu14.04映象

從dockerpool的源中pull映象 由於國內訪問docker.io時網速較慢,從docker.com網站上拉取一個docker映象一般會花費十多分鐘。為了解決這個問題,我們從國內的dockerpool網站拉取ubuntu14.04的映象。 首先,新增C

docker 入門 - 01】- Docker 在 Centos7 上安裝與測試

一、學習文件 官網網站: https://www.docker.com 中文網站:http://www.docker-cn.com   官方安裝文件:https://docs.docker.com/install/linux/docker-ce/centos/ 最好的文件和學習路勁,都是來