是否可以將Docker理解為應用程式虛擬化?
如果把Linux比喻成交通運輸,好比汽車引擎,Docker容器相當於汽車的各個零部件,Dockerfile是汽車組裝車間,Docker registry可以看作是4s店。
伺服器虛擬化指的是在作業系統與硬體之間加一層,叫做hypervisor層,對下控制硬體,對上承載作業系統,作業系統os以檔案形式封裝執行,稱為虛擬機器,主要解決的問題是硬體利用率和靈活性的問題,常見的方案為vmware vsphere,xen,kvm,hyper-v..
容器虛擬化指的是在os上將應用打包以程式的形式執行,應用和應用間非完全隔離,但是更輕量,效率高,lxc和docker都可以稱為容器級虛擬化,區別在於docker可以理解為經過精美封裝過更加好用的lxc,有更好的介面和更完善的配套
1、Docker虛擬化技術入門
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的Linux機器上,也可以實現虛擬化。 "Docker"應該是2014年最火爆的技術之一,如果沒有聽說過,那麼你就out了,2015年將開啟新的跨越。 Docker 專案的目標是實現輕量級的作業系統虛擬化解決方案。 Docker 的基礎是 Linux 容器(LXC)、Cgroup等技術。
2、Docker虛擬化安裝配置
docker官方文件說要求Linux kernel至少3.8以上,一般為Centos7或者Ubuntu系統,那centos6.5如何來安裝呢? 在Centos6.x系列安裝docker軟體,首先要關閉selinux,然後需要安裝相應的epel源。
3、Docker常用命令講解
大家都知道要掌握好Linux,首先就是要熟練,並且去使用它。然後今天學習docker虛擬化也是一樣的,我們要想更快的掌握docker技術,就得熟練docker有哪些常用的命令,以及每個命令的含義是什麼,這樣才能為我們後面的學習打下基礎。
4、Docker獨立IP及容器互聯
內建bridge(nat) 缺點: 需要配套服務註冊/發現,否則宿主上埠分配困難,容易衝突。 由於每個容器暴露的埠都不一致,造成前端路由層nginx配置(proxy_pass)裡無法使用dns的方式。 埠對映要在容器啟動時就指定好,後期無法變更。 測試發現nat不支援websocket。 自建橋接網路 優點: 每個容器都有獨立ip,對外提供服務,如nginx+php,nginx+resin,都可以使用預設的80埠 由於容器暴露埠都可以使用80埠,因此前端路由層nginx配置(proxy_pass)裡可以使用dns的方式。
5、Docker使用PipeWork構建獨立外網IP
docker預設提供了一個隔離的內網環境,啟動時會建立一個docker0的虛擬網路卡,每個容器都是連線到docker0網路卡上的。而docker0的ip段為172.17.0.1,如果想讓容器與宿主機同一網段的其他機器訪問,就必須在啟動docker的時候將某個埠對映到宿主機的埠。這樣如果大家會發現很麻煩,而且在企業裡面也沒這麼使用的,比較弱。 大家應該知道KVM的橋接網路非常方便,其實docker也比較方便,至少不是自帶的橋接而已,上次課程我們講解了docker容器在centos6.5下的實現方法,今天我們來講解centos7下如果快速實現docker容器橋接網路,併為容器分配外網IP。
6、Docker構建Tomcat環境
Tomcat是由Apache軟體基金會下屬的Jakarta專案開發的一個Servlet容器,按照Sun Microsystems提供的技術規範,實現了對Servlet和JavaServer Page(JSP)的支援,Tomcat本身也是一個HTTP伺服器,可以單獨使用,apache是一個以C語言編寫的HTTP伺服器。Tomcat主要用來解析JSP語言。目前最新版本為8.0。
7、使用Dockerfile進行docker容器管理
Dockerfile是一個映象的表示,可以透過Dockerfile來描述構建映象的步驟,並自動構建一個容器。 所有的 Dockerfile 命令格式都是: INSTRUCTION arguments 雖然指令忽略大小寫,但是建議使用大寫。
8、DockerFile企業案例講解及實戰
Dockerfile是一個映象的表示,可以透過Dockerfile來描述構建映象的步驟,並自動構建一個容器。 所有的 Dockerfile 命令格式都是: INSTRUCTION arguments 雖然指令忽略大小寫 # 作者資訊 MAINTAINER JFEDU.NET # RUN命令會在上面指定的映象裡執行任何命令 RUN yum install passwd openssl openssh-server -y RUN echo '123456' | passwd --stdin root RUN sed -i '/^session\\s\\+required\\s\\+pam_loginuid.so/s/^/#/' /etc/pam.d/sshd
9、Docker備份及磁碟擴容
docker容器預設的空間是10G,如果想指定預設容器的大小(在啟動容器的時候指定),可以在docker配置檔案裡透過dm.basesize引數指定,例如: docker -d --storage-opt dm.basesize=20G 是指定預設的大小為20G,具體引數可以參考https://github.com/docker/docker/tree/master/daemon/graphdriver/devmapper
10、Docker構建Mysql資料庫伺服器
在docker虛擬化中,如何來構建我們的MYSQL資料庫伺服器呢?答案很簡單,我們可以是dockerfile來生成mysql映象並啟動執行即可。
11、Docker構建Nginx高效能web伺服器
首先需要安裝pcre庫,然後再安裝Nginx: #安裝pcre支援rewrite庫,也可以安裝原始碼,注*安裝原始碼時,指定pcre路徑為解壓 原始碼的路徑,而不是編譯後的路徑,否則會報錯 (make[1]: *** [/usr/local/pcre/Makefile] Error 127 錯誤)
12、Docker構建LNAMP架構配置
LNAMP(Linux+Nginx+Apache+Mysql+PHP)架構受到很多IT企業的青睞,取代了原來認為很好的LNMP(Linux+Nginx+Mysql+PHP)架構,那我們說LNAMP到底有什麼優點呢,還得從Nginx和apache的優缺點說起。 Nginx處理靜態檔案能力很強,Apache處理動態檔案很強而且很穩定,把二者綜合在一塊,效能提升很多倍。可能很多Linux SA在從事LNMP運維中,會發現PHP(FastCGI)模式會出現一些502錯誤的現象,這是因為Nginx+PHP(FastCGI)組合不穩定的原因造成的。
13、Docker自動化指令碼管理一
透過本章的學習,大家可以快速的管理自己的容器,實現自動安裝並配置docker虛擬化及橋接網路,同時使用pipework這個軟體來配置我們的容器IP。能夠實現容器的一個簡單的管理。 #!/bin/bash #auto install docker and Create VM #by wugk 2016-01-05
14、Docker自動化指令碼管理二
Docker 專案的目標是實現輕量級的作業系統虛擬化解決方案。 Docker 的基礎是 Linux 容器(LXC)等技術。 在 LXC 的基礎上 Docker 進行了進一步的封裝,讓使用者不需要去關心容器的管理,使得操作更為簡便。使用者操作 Docker 的容器就像操作一個快速輕量級的虛擬機器一樣簡單。 下面對比了Docker 和傳統虛擬化(KVM、XEN等)方式的不同之處,容器是在作業系統層面上實現虛擬化,直接複用本地主機的作業系統,而傳統方式則是在硬體的基礎上,虛擬出自己的系統,再在系統上部署相關的APP應用。
課程地址:來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30605389/viewspace-2083562/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 徹底釋放虛擬化,Docker的應用Docker
- Docker容器與虛擬化技術:OpenEuler 部署 docker容器應用Docker
- 說透 Docker:虛擬化Docker
- Docker虛擬化管理:30分鐘教你學會用DockerDocker
- 碾碎泡沫看虛擬化應用
- 應用虛擬化:“虛”減成本 “實”增效率
- 【虛擬機器】如何判斷CPU是否支援硬體虛擬化虛擬機
- 國產網路卡:虛擬化應用,民族品牌
- 伺服器虛擬化的應用前景伺服器
- EWEBS:三招打造安全應用虛擬化Web
- 將網站轉化為應用程式Unite for Mac網站Mac
- Docker是否比虛擬機器更適合我們?Docker虛擬機
- 虛擬化應用由“虛”入“實”的五步秘訣
- RHEL7 Docker 虛擬化使用(二)Docker
- RHEL7 Docker 虛擬化使用(一)Docker
- Docker技術( 容器虛擬化技術 )Docker
- 殊途同歸:SaaS與應用虛擬化薦
- 將網站轉化為應用程式:Unite mac啟用版網站Mac
- Docker容器:將帶UI的程式直接轉為Web應用,so easyDockerUIWeb
- 用 Docker Machine 建立 Azure 虛擬主機DockerMac
- 針對運營商行業的虛擬化應用效能監測管理解決方案行業
- 微軟將為Linux帶來巢狀式虛擬化支援微軟Linux巢狀
- 網路虛擬化技術與應用場景
- 虛擬化技術在智慧終端的應用
- 虛擬化應用才是技術發展的根本
- 深入理解Java虛擬機器(程式編譯與程式碼優化)Java虛擬機編譯優化
- 應用程式虛擬化初體驗App-VManagementServer簡單部署與配置APPServer
- win10怎麼檢視虛擬化是否開啟_檢視win10電腦是否開啟虛擬化的方法Win10
- 全面理解虛擬DOM,實現虛擬DOM
- Docker教程之二Docker和傳統虛擬化對比Docker
- 虛擬化及雲端計算技術應用的思考
- java應用docker化JavaDocker
- docker筆記49-容器虛擬化網路Docker筆記
- 什麼是虛擬化技術,為什麼要虛擬化技術?薦
- 虛擬化四、KVM虛擬化技術
- Loopback for Mac(虛擬音訊應用)OOPMac音訊
- 虛擬音訊應用:Loopback Mac音訊OOPMac
- 應用整合虛擬化解決方案