Docker入門-簡介

獨具魅力的Docker作為一門新技術,它的出現有可能引起其所在領域大范圍的波動甚至是重新洗牌。根據業內專業人士的看法,不論如何,Docker的出現,已經成為云服務市場中一枚極具意義的戰略性棋子。從2013年開始在國內發力,一直到2015年的野蠻擴張逐漸發展到至今,Docker到底是何方神圣,能有如此大的威力?

一、Docker是什么

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

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

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

二、Docker的應用場景

  • Web 應用的自動化打包和發布。
  • 自動化測試和持續集成、發布。
  • 在服務型環境中部署和調整數據庫或其他的后臺應用。
  • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平臺來搭建自己的 PaaS 環境。

三、Docker 的優點

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

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

Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命周期。

容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

  • 您的開發人員在本地編寫代碼,并使用 Docker 容器與同事共享他們的工作。
  • 他們使用 Docker 將其應用程序推送到測試環境中,并執行自動或手動測試。
  • 當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然后將其重新部署到測試環境中,以進行測試和驗證。
  • 測試完成后,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

2、響應式部署和擴展

Docker 是基于容器的平臺,允許高度可移植的工作負載。Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,云服務上或混合環境中運行。

Docker 的可移植性和輕量級的特性,還可以使您輕松地完成動態管理的工作負擔,并根據業務需求指示,實時擴展或拆除應用程序和服務。

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

Docker 輕巧快速。它為基于虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。Docker 非常適合于高密度環境以及中小型部署,而您可以用更少的資源做更多的事情。

四、容器與虛擬機的區別

為什么要和虛擬機做比較,用過虛擬機的同學應該知道,虛擬機也是將主機資源分配出一部分,進行隔離,提供另一個系統環境。

容器

容器是應用層的抽象,它將代碼和依賴關系打包在一起。多個容器可以在同一臺機器上運行,并與其他容器共享操作系統內核,每個容器在用戶空間中作為獨立進程運行。容器占用的空間比VM少(容器映像的大小通常為幾十MB),可以處理更多的應用程序,并且需要更少的VM和操作系統。

虛擬機

虛擬機(VM)是物理硬件的抽象,將一臺服務器轉變為多臺服務器。管理程序允許多臺VM在單臺機器上運行。每個VM都包含操作系統的完整副本,應用程序,必要的二進制文件和庫 - 占用數十GB。虛擬機也可能很慢啟動。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535725.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535725.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535725.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mysql中limit的優化

在一些情況中,當你使用LIMIT row_count而不使用HAVING時,MySQL將以不同方式處理查詢。 如果你用LIMIT只選擇一些行,當MySQL選擇做完整的表掃描時,它將在一些情況下使用索引。 如果你使用LIMIT row_count與ORD…

Docker入門-架構

Docker 包括三個基本概念: 鏡像(Image):Docker 鏡像(Image),就相當于是一個 root 文件系統。比如官方鏡像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統的 root 文件系統。容器(Cont…

MYSQL出錯代碼列表大全(中文)

mysql出錯了,以前往往靠猜.現在有了這張表,一查就出來了. 1005:創建表失敗1006:創建數據庫失敗1007:數據庫已存在,創建數據庫失敗1008:數據庫不存在,刪除數據庫失敗1009:不能刪除數據庫文件導致…

Docker入門-安裝

Centos7下安裝Docker docker官方說至少Linux 內核3.8 以上,建議3.10以上(ubuntu下要linux內核3.8以上, RHEL/Centos 的內核修補過, centos6.5的版本就可以) 1、把yum包更新到最新:yum update 2、安裝需要的…

Docker原理之Namespaces

命名空間(namespaces)是 Linux 為我們提供的用于分離進程樹、網絡接口、掛載點以及進程間通信等資源的方法。 一、Namespaces 在日常使用 Linux 或者 macOS 時,我們并沒有運行多個完全分離的服務器的需要,但是如果我們在服務器上啟…

mysql 快速插入(insert)多條記錄

方法1: INSERT INTO table(col_1, col_2,col_3) VALUES(1,11,111); INSERT INTO table(col_1, col_2,col_3)   VALUES(2,22,222); INSERT INTO table(col_1, col_2,col_3)   VALUES(3,33,333); 有沒有更快捷的辦法呢?答案是有(見方法2) 方法2: INSERT INTO table(col…

Docker原理之CGroups

控制組(cgroups)是 Linux 內核的一個特性,主要用來對共享資源進行隔離、限制、審計 等。只有能控制分配到容器的資源,才能避免當多個容器同時運行時的對系統資源的競爭。控制組技術最早是由 Google 的程序員 2006 年起提出&#x…

Mysql中的轉義字符

字符串是多個字符組成的一個字符序列,由單引號( “”) 或雙引號 ( “"”) 字符包圍。(但在 ANSI 模式中運行時只能用單引號)。 例如: a string"another string"在一個字符串中,如果某個序列具有特殊的含義,每個序…

Docker原理之UnionFS

一、UnionFS Linux 的命名空間和控制組分別解決了不同資源隔離的問題,前者解決了進程、網絡以及文件系統的隔離,后者實現了 CPU、內存等資源的隔離,但是在 Docker 中還有另一個非常重要的問題需要解決 - 也就是鏡像。 鏡像到底是什么&#…

教你精確編寫高質量高性能的MySQL語法

在應用系統開發初期,由于開發數據庫數據比較少,對于查詢SQL語句,復雜視圖的編寫,剛開始不會體會出SQL語句各種寫法的性能優劣,但是如果將應用系統提交實際應用后,隨著數據庫中數據的增加,系統的…

Docker使用-Hello World

1、docker pull hello-world 拉去docker遠程倉庫中的Hello World的鏡像 [rootCarlota2 ~]# docker pull hello-world Using default tag: latest latest: Pulling from library/hello-world 0e03bdcc26d7: Pull complete Digest: sha256:7f0a9f93b4aa3022c3a4c147a449bf11e09…

Mysql數據庫引擎快速指南

如果你是個賽車手并且按一下按鈕就能夠立即更換引擎而不需要把車開到車庫里去換,那會是怎么感覺呢? MySQL 數據庫為開發人員所做的就好像是按按鈕換引擎;它讓你選擇數據庫引擎,并給你一條簡單的途徑來切換它。 MySQL的自帶引擎肯…

Docker使用-構建MySQL

拉取官方鏡像(我們這里選擇5.7,如果不寫后面的版本號則會自動拉取最新版) docker pull mysql:5.7 # 拉取 mysql 5.7 docker pull mysql # 拉取最新版mysql鏡像MySQL文檔地址 檢查是否拉取成功 $ sudo docker images一般來說數據庫容…

Java集合:什么是Java集合?

一、集合的由來 通常,我們的Java程序需要根據程序運行時才知道創建了多少個對象。但若非程序運行,程序開發階段,我們根本不知道到底需要多少個數量的對象,甚至不知道它的準確類型。為了滿足這些常規的編程需要,我們要…

Mysql截取中英數混合的字符串

在 mysql中截取字符串我們用 LEFT函數 LEFT(str,len) 返回從字符串str 開始的len 最左字符。 mysql> SELECT LEFT(foobarbar, 5); -> fooba 手冊上只介紹了截取英文字符串的方法,中文或者中英文的怎么辦呢?以下是截取中英混合的字符串(中國人…

Java集合:Collection接口

Collection是一個接口,繼承自Iterable。我們先看一下Iterable接口的源碼 一、Iterable package java.lang;import java.util.Iterator; import java.util.Objects; import java.util.Spliterator; import java.util.Spliterators; import java.util.function.Cons…

Java集合:List集合

List集合 List集合類中元素有序、且可重復,集合中的每個元素都有其對應的順序索引。 List容器中的元素都對應一個整數型的序號記載其在容器中的位置,可以根據序號存取容器中的元素。 JDK API中List接口的實現類常用的有:ArrayList、LinkList和…

MySQL為什么要set names

大家都知道SET NAMES x相當于SET character_set_client x;SET character_set_results x;SET character_set_connection x; 以下從MySQL5.0官方文檔上摘錄了相關內容,并翻譯,說明了相關系統變量的用處: What character set is the statem…

MySql日期處理系列-常用的日期推算處理

以下都是我平時用的一些日期推算處理方法,方法并不一定是最有效率的.全部均通過測試!轉載請注明來自[phpchina.com] #title: 常用的日期推算處理#auther: 小強(占卜師) #date: 2007-12-25 #取得當前日期set dtCURDATE();select dt; #當前日期這個月的第一天selec…

Java集合:Set集合

一、Set接口的特點 一個不包含重復元素的collection。更確切地講,Set不包含滿足e1.equals(e2)的元素對 e1和e2,并且最多包含一個null元素。 Set集合由Set接口和Set接口的實現類組成,Set接口繼承了Collection接口,因此包含了Coll…