Docker 什麼是 Docker ?

更新於 2024/01/08閱讀時間約 2 分鐘
raw-image

前言

大家好我們今天要來教 Docker 這項技術,什麼是 Docker ? Docker 可以幫助我們做什麼事情 ?

Docker 是一項容器化技術,他可以降低我們在佈署 App 時,讓我們可以有效的分配作業系統資源,降低佈署作業成本,現在讓我們來了解 Docker 要解決的問題

傳統佈署遇見問題

首先我們先來看傳統我們在佈署應用程式時,所遇見的問題,我們來看我們下圖的系統架構,有一台 Host 主機,上面掛著作業系統,而作業系統上面掛著三個應用程式,這時候問題出現,當其中有一個應用程式出現問題,可能連帶影響其他應用程式也跟著出現問題

raw-image

傳統主機模式

接下來來看到為了解決一台主機掛載多個應用程式,在傳統上會分成三台主機,上面掛載不同的應用程式,當如果有一個應用程式掛掉時,也不會影響其他主機,但是這樣個資源是高的

raw-image

VM 模式

接下來來看到為了解決多台主機所耗費的資源,在後來我們改了 VM 模式,可以看到有如下圖,在一台 Host 主機,上面掛載作業系統,在作業系統上面我們掛載一個叫做 Hypervisor,這個東西提供了虛擬化的技術,在這上面我們掛載 VM,在 VM 在上面我們掛載作業系統,而在作業系統掛載我們的應用程式,可以看到雖然我們可以不須像傳統模式一樣,花費的硬體資源這麼高,當如果有一個應用程式出現錯誤時,也不會影響其他應用程式,達到隔離與保護的效過,但是我們每次在佈署一個應用程式時,都在起一個 VM 去做前置作業,在硬體資源上也是滿高的

raw-image

容器模式

隨著時代的演進,技術的成長,現在擁有了容器模式,有如下圖我們一樣會有一台 Host 主機,在這主機安裝作業系統,上面會掛載一個東西叫做 Docker Engine,而在 Docker Engine 上我們會掛載不同的容器,而在容器上面會掛載不同的應用程式,然而當如果有一個應用程式出現錯誤時,也不會影響其他應用程式,每個容器是互相隔離的

raw-image

三個模式資源比較

在傳統模式因為要耗費很多主機資源,所以傳統模式是最高的,而在 VM 模式情況下,所耗費的資源是中,在容器模式運作下所耗費的資源是最低的

容器化技術

接下來我們來統整一下,什麼是 Docker ? Docker 是一種虛擬化技術,那容器化技術是甚麼呢~,容器化技術意思是指,可以讓我們有效分配硬體資源的一項技術,讓我們的應用程式可以彼此隔離

avatar-img
10會員
49內容數
d3.js 圖形
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Tim Bai的沙龍 的其他內容
前言 上次我們講到 CI/CD 中的 when 使用,今天我們要來傳授一套必殺技,我們要把過去所學的全部融合再一起,相信各位都準備好了,將 Gitlab 從枷鎖中解放出來吧,讓我們來詠唱「武裝完全支配術」 「System Call. Connect Armament. Search Archiv
前言 上次教到如何使用 environment 去自動設置我們環境那些,今天我們要教 CI/CD 中的 when,通常在自動化佈署上線流程,並不會一路像前幾次一樣,先佈署到測試機,再佈署 demo 機,最後佈署到正式機,我們在佈署正式機的時候,通常會做一個防呆,比如說做成一個指令集,或者是按鈕等等
前言 上次我們做了一次使用 Docker、Docker Compose 與 Gitlab CI/CD 做一次自動化佈署上線,今天我們要來再來教一個 Gitlab CI/CD 中的 environment 這個 script 怎麼使用 environment 作用 environment 是可以
前言 大家好上次講到在使用 Gitlab CI/CD 自動化佈署前,使用 Docker Compose 撰寫佈署計畫書,今天我們要將目標轉移到 Gitlab 我們要撰寫自動化上線佈署計畫書,我們之後還會講一套更完整的佈署流程,今天只是讓各位體驗,自動化佈署上線的快感 調整 CI/CD 變數 首
前言 大家好上次我們教了 Gitlab CI/CD 的 extends 如何使用,今天我們要來實際做一個真正佈署上線我們的服務,我們會分成兩個章節,第一部分先教大家怎麼寫 Docker Compose 佈署計畫書,第二部分教大家撰寫 CI/CD 自動化佈署流程計劃書 什麼是 Docker Com
前言 上次教到如何使用 scp 與 CI/CD 配合複製檔案至伺服器,今天我們要來教 CI/CD 中的 extends 指令,extends 在有些程式語言叫做繼承的意思,那在 CI/CD 中,叫做繼承工作的意思,妳也可以把它當成,CI/CD 也可以繼承工作,幫助我們在撰寫 CI/CD 腳本更加省
前言 上次我們講到 CI/CD 中的 when 使用,今天我們要來傳授一套必殺技,我們要把過去所學的全部融合再一起,相信各位都準備好了,將 Gitlab 從枷鎖中解放出來吧,讓我們來詠唱「武裝完全支配術」 「System Call. Connect Armament. Search Archiv
前言 上次教到如何使用 environment 去自動設置我們環境那些,今天我們要教 CI/CD 中的 when,通常在自動化佈署上線流程,並不會一路像前幾次一樣,先佈署到測試機,再佈署 demo 機,最後佈署到正式機,我們在佈署正式機的時候,通常會做一個防呆,比如說做成一個指令集,或者是按鈕等等
前言 上次我們做了一次使用 Docker、Docker Compose 與 Gitlab CI/CD 做一次自動化佈署上線,今天我們要來再來教一個 Gitlab CI/CD 中的 environment 這個 script 怎麼使用 environment 作用 environment 是可以
前言 大家好上次講到在使用 Gitlab CI/CD 自動化佈署前,使用 Docker Compose 撰寫佈署計畫書,今天我們要將目標轉移到 Gitlab 我們要撰寫自動化上線佈署計畫書,我們之後還會講一套更完整的佈署流程,今天只是讓各位體驗,自動化佈署上線的快感 調整 CI/CD 變數 首
前言 大家好上次我們教了 Gitlab CI/CD 的 extends 如何使用,今天我們要來實際做一個真正佈署上線我們的服務,我們會分成兩個章節,第一部分先教大家怎麼寫 Docker Compose 佈署計畫書,第二部分教大家撰寫 CI/CD 自動化佈署流程計劃書 什麼是 Docker Com
前言 上次教到如何使用 scp 與 CI/CD 配合複製檔案至伺服器,今天我們要來教 CI/CD 中的 extends 指令,extends 在有些程式語言叫做繼承的意思,那在 CI/CD 中,叫做繼承工作的意思,妳也可以把它當成,CI/CD 也可以繼承工作,幫助我們在撰寫 CI/CD 腳本更加省
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
相信Docker近幾年已經是IT與軟體開發者最常使用的一套虛擬系統了, 詳細是什麼就不多說了, 歡迎參考「📚【Docker】初探微服務時代的虛擬化技術」, 而我們使用Docker時, 有時候因為有AI的需求,需要載入別台機器的大容量模型, 但我們又不希望整個模型搬移, 浪費了兩台的空間, 這時候就
Thumbnail
講到Docker之前就必須先談談容器化, 容器化是一種軟體開發的方法, 將程式、依賴及組態封裝在映像檔之中, 那映像檔對於大部份的人來說一定非常的熟悉, 尤其是VM這個詞, 虛擬化技術的先行者, 有了這項技術之後, 我們就可以減少一些因為環境產生的問題導致難以排查程式錯誤的狀況, 甚至可以避免因為A
Thumbnail
本篇大綱:本篇要解決的問題。用 Docker 安裝 Verdaccio。上傳 package。使用 package。刪除 package。修改 config.yml。改變 CSS。
Thumbnail
GitLab不僅是一個源代碼管理工具,它還提供了一個統一的平台,將開發、運營和安全等流程整合在一起。通過GitLab,可以在單一的應用程序中進行專案計劃、源代碼管理、分支控制、CI/CD等操作。不論角色為何,GitLab提供了一個統一的資訊來源,讓你輕鬆地管理和追蹤整個開發流程。它消除了工具鏈的複雜
Thumbnail
進入官方網站,根據自己電腦的作業系統,選擇適合的安裝檔。 切記,注意一下基本的配備要求
此案例是在 mac 上運行。 原稿參考 筆者簡化程序,命令如下: //---1.下載 mssql images----(做一次即可) %sudo docker pull mcr.microsoft.com/mssql/server:2017-latest //----2.將image啟動 成
Thumbnail
程式設計師難免會遇到要自已架環境的時候,但是遇到問題時,總不能一直安裝、刪除,這時候可以用docker,先記錄一下安裝與指令 這裡使用Docker Desktop,當然也可以使用command line輸入就好 照上列網址下載之後,並且安裝完成 就可以使用command line 開始操作 如果覺得
Thumbnail
章節 我為什麼要用 Docker? Docker 的初步認識。(本篇文章) Docker Hello World。 Docker Services。 Docker Swarm。 Docker Stack。 Docker 的官方文件就列出下圖來說明 Docker 是什麼?
我在開發的時候有碰到部屬伺服器上的困難,我用 Docker 來解決我的困境,文章會分為以下幾個章節: 我為什麼要用 Docker?(這篇文章) Docker 的初步認識。 Docker Hello World。 Docker Services。 Docker Swarm。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
相信Docker近幾年已經是IT與軟體開發者最常使用的一套虛擬系統了, 詳細是什麼就不多說了, 歡迎參考「📚【Docker】初探微服務時代的虛擬化技術」, 而我們使用Docker時, 有時候因為有AI的需求,需要載入別台機器的大容量模型, 但我們又不希望整個模型搬移, 浪費了兩台的空間, 這時候就
Thumbnail
講到Docker之前就必須先談談容器化, 容器化是一種軟體開發的方法, 將程式、依賴及組態封裝在映像檔之中, 那映像檔對於大部份的人來說一定非常的熟悉, 尤其是VM這個詞, 虛擬化技術的先行者, 有了這項技術之後, 我們就可以減少一些因為環境產生的問題導致難以排查程式錯誤的狀況, 甚至可以避免因為A
Thumbnail
本篇大綱:本篇要解決的問題。用 Docker 安裝 Verdaccio。上傳 package。使用 package。刪除 package。修改 config.yml。改變 CSS。
Thumbnail
GitLab不僅是一個源代碼管理工具,它還提供了一個統一的平台,將開發、運營和安全等流程整合在一起。通過GitLab,可以在單一的應用程序中進行專案計劃、源代碼管理、分支控制、CI/CD等操作。不論角色為何,GitLab提供了一個統一的資訊來源,讓你輕鬆地管理和追蹤整個開發流程。它消除了工具鏈的複雜
Thumbnail
進入官方網站,根據自己電腦的作業系統,選擇適合的安裝檔。 切記,注意一下基本的配備要求
此案例是在 mac 上運行。 原稿參考 筆者簡化程序,命令如下: //---1.下載 mssql images----(做一次即可) %sudo docker pull mcr.microsoft.com/mssql/server:2017-latest //----2.將image啟動 成
Thumbnail
程式設計師難免會遇到要自已架環境的時候,但是遇到問題時,總不能一直安裝、刪除,這時候可以用docker,先記錄一下安裝與指令 這裡使用Docker Desktop,當然也可以使用command line輸入就好 照上列網址下載之後,並且安裝完成 就可以使用command line 開始操作 如果覺得
Thumbnail
章節 我為什麼要用 Docker? Docker 的初步認識。(本篇文章) Docker Hello World。 Docker Services。 Docker Swarm。 Docker Stack。 Docker 的官方文件就列出下圖來說明 Docker 是什麼?
我在開發的時候有碰到部屬伺服器上的困難,我用 Docker 來解決我的困境,文章會分為以下幾個章節: 我為什麼要用 Docker?(這篇文章) Docker 的初步認識。 Docker Hello World。 Docker Services。 Docker Swarm。