您好,登錄后才能下訂單哦!
小編給大家分享一下從0開始了解Docker入門的方法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
序
Docker 自開源以來受到了各大公司的廣泛關注,或許現在互聯網公司的運維體系不承載在 Docker(或 Pouch 等)之上都不好意思說自己的互聯網公司。
本文會簡單介紹下 Docker 的基礎概念,入門級使用方式和一些使用 Docker 能大大提升效率的場景。
原理
對 Docker 最簡單并且帶有一定錯誤的認知就是 “Docker 是一種性能非常好的虛擬機”。
正如上面所說,這是有一定錯誤的說法。Docker 相比于傳統虛擬機的技術來說先進了不少,具體表現在 Docker 不是在宿主機上虛擬出一套硬件后再虛擬出一個操作系統,而是讓 Docker 容器里面的進程直接運行在宿主機上(Docker 會做文件、網絡等的隔離),這樣一來 Docker 會 “體積更輕、跑的更快、同宿主機下可創建的個數更多”。
Docker 中有三個核心概念:Image、Container、Repository。
Image: 有領“好人卡”傾向的廣大程序猿一定對 鏡像 的概念不會陌生。但和 windows 的那種 iso 鏡像相比,Docker 中的鏡像是分層的,可復用的,而非簡單的一堆文件迭在一起(類似于一個壓縮包的源碼和一個 git 倉庫的區別)。
Container: 容器的存在離不開鏡像的支持,他是鏡像運行時的一個載體(類似于實例和類的關系)。依托 Docker 的虛擬化技術,給容器創建了獨立的端口、進程、文件等“空間”,Container 就是一個與宿機隔離 “容器”。容器可宿主機之間可以進行 port、volumes、network 等的通信。
Repository: Docker 的倉庫和 git 的倉庫比較相似,擁有倉庫名、tag。在本地構建完鏡像之后,即可通過倉庫進行鏡像的分發。常用的 Docker hub 有 https://hub.docker.com/ 、 https://cr.console.aliyun.com/ 等。
相關命令
1. 安裝
Docker 的安裝是非常便捷的,在 macOS、ubuntu 等下面都有一鍵式安裝工具或者腳本。更多可以參考 Docker 官方教程。
安裝后 Terminal 中敲下 docker,有使用說明出來的話大多情況下說明已經安裝成功了。
2. 尋找基礎鏡像
DockerHub 等網站都提供了眾多鏡像,一般情況下我們都會從它那找個鏡像作為基礎鏡像,然后再進行我們的后續操作。
這里我們以 ubuntu 基礎鏡像為例,配置一個 node 環境。
因為 “鏈路太長” 的原因,國內訪問 Docker Hub 可能會比較慢,可以使用國內眾多廠商提供的鏡像加速器
3. 拉取基礎鏡像
利用 docker pull 命令即可從相關 hub 網站上拉取鏡像到本地。同時在拉的過程中就能看到是按照多個 “層” 去拉鏡像的。
> docker pull ubuntu:18.04
借助 Dockerfile 的能力,Docker 留下了無限的可能。
能做什么
說了這么一堆,那實際生產環境中 Docker 能做什么呢?常用的可能有下面這些(歡迎在評論中補充)
1. 多環境的部署切換
業務開發中往往需要區分開發環境與線上環境,利用 Docker 能原封不動的將開發環境中的 代碼與環境原封不動無污染的 遷移到線上環境,配合一定的自動化流程即可實現自動的發布。
2. 前端云構建
因為 node_modules 的蛋疼問題,同一個倉庫下不同人開發往往會遇到不同的人使用不同的 包版本 且自己根本不知道與別人不一樣,最終導致發布之后產生線上問題。利用 Docker 可以在云端新建容器,遠程 無污染、低成本 構建代碼,實現 不同人用的一定是同一個版本。
3. 復雜環境一鍵配置
某些場景下可能會配一些超級復雜的環境(比如:大一同學配 Java 環境),這個時候可以利用 Docker 對環境配置做封裝,直接生成鏡像,讓大家低成本使用。
4. 持續集成單元測試
類似于 travis-ci 這種
5. 同應用多版本隔離、文件隔離
比如這個項目依賴 node6,那個項目依賴 node 8(只是舉例子,硬盤夠大的話還是建議通過 nodeinstall 解決);同一臺服務器上跑了 100 個 wordpress 程序(可以用 Docker 建立隔離開,防止互相污染)。
看完了這篇文章,相信你對“從0開始了解Docker入門的方法”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
原文鏈接:https://juejin.im/post/5ad3172c5188257ddb10109a
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。