服務器虛擬化指的是在操作系統與硬件之間加一層,叫做hypervisor層,對下控制硬件,對上承載操作系統,操作系統os以文件形式封裝運行,稱為虛擬機,主要解決的問題是硬件利用率和靈活性的問題,常見的方案為vmware vsphere,xen,kvm,hyper-v..容器虛擬化指的是在os上將應用打包以進程的形式運行,應用和應用間非完全隔離,但是更輕量,效率高,lxc和docker都可以稱為容器級虛擬化,區別在于docker可以理解為經過精美封裝過更加好用的lxc,有更好的接口和更完善的配套。
如果把Linux比喻成交通運輸,Docker好比汽車引擎,Docker容器相當于汽車的各個零部件,Dockerfile是汽車組裝車間,Docker registry可以看作是4s店。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,首先就是要熟練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 雖然指令忽略大小寫,但是建議使用大寫。
新聞熱點
疑難解答