Docker 的初步認識

閱讀時間約 2 分鐘
章節
  1. 我為什麼要用 Docker?
  2. Docker 的初步認識。(本篇文章)
  3. Docker Hello World。
  4. Docker Services。
  5. Docker Swarm。
  6. Docker Stack。
Docker 的官方文件就列出下圖來說明 Docker 是什麼?
https://docs.docker.com/get-started/
我在第一次看到這張圖片的時候,冒出以下幾個問題:
  1. 什麼是 Hypervisor?它的作用什麼?
  2. 這圖片要傳達什麼意思?
接下來回答這幾個問題:
Q1:什麼是 Hypervisor?它的作用什麼?
就我的理解它是模擬軟體,每個作業系統安裝的時候,都會預期有某些硬體規格,比如 CPU 家族(x86, ARM),幾個硬碟(介面是什麼),鍵盤、滑鼠等等的硬體。Hypervisor 就是負責模擬出這些硬體環境,讓作業系統可以正常安裝。所以才可以看到上圖,一台 PC 其實可以安裝多個作業系統。

Q2:這圖片要傳達什麼意思?
可以看到右邊並沒有 Hypervisor,取而代之的是 Docker,另外看到右邊都不再有 Guest OS,這就是 Docker 一直強調的「Lightweight」。因為作業系統比較吃資源,Docker 跑自己的應用程式的時候不再需要作業系統,而是由 Docker 幫我們代勞,幫我們把應用程式跑起來。

其實要把自己應用程式用 Docker 跑起來,主要是牽涉到以下幾個步驟:
  1. 在 Linux 下安裝 Docker。
  2. 將自己的應用程式包成 Image。
  3. 將 Image 上傳到 Docker Hub。(其實也可以放到其它地方)
  4. 在 Linux 下 docker 指令將應用程式跑起來。
往後更新應用程式的時候,要重複做 2 ~ 4 的步驟。

結論
Docker 和虛擬機(VM) 的運作不同,VM 是必須要自己安裝作業系統,並且設定應用程式的環境(安裝應用程式相關的套件);但是 Docker 並不需要做這些,變成是在作業系統上安裝 Docker,再用 docker 相關指令將應用程式啟動。














    0會員
    2內容數
    留言0
    查看全部
    發表第一個留言支持創作者!
    弓箭手的沙龍 的其他內容
    我在開發的時候有碰到部屬伺服器上的困難,我用 Docker 來解決我的困境,文章會分為以下幾個章節: 我為什麼要用 Docker?(這篇文章) Docker 的初步認識。 Docker Hello World。 Docker Services。 Docker Swarm。
    我在開發的時候有碰到部屬伺服器上的困難,我用 Docker 來解決我的困境,文章會分為以下幾個章節: 我為什麼要用 Docker?(這篇文章) Docker 的初步認識。 Docker Hello World。 Docker Services。 Docker Swarm。
    你可能也想看
    Google News 追蹤
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
    Thumbnail
    本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
    Thumbnail
    在現代科技推動下,企業的數位轉型越來越成為不可忽視的趨勢。Docker,作為一個容器化技術的先驅,正深刻地改變著職場的工作方式和應用程式開發流程。本文將探討 Docker 在職場的應用,尤其是如何提升效能、簡化部署,以及它對現代企業的影響。
    將使用者加入Docker群組 sudo groupadd docker sudo usermod -aG docker $USER 設定開機自動啟動Docker服務 sudo systemctl enable docker sudo systemctl start docker 試跑
    Thumbnail
    教大家讓 vscode 連上遠端電腦中的 docker 環境之中,步驟詳細且附圖
    Thumbnail
    那時做總統盃黑客松時,因為要GIS 分析,資料放在 postgresql-postgis,安裝與設定上實在是麻煩。於是想說用 docker 人家建好的 postgis。果然是有,然後...
    Thumbnail
    圖片來自 Shine With Sapphire (本文譯自〈Docker for PHP Developers〉) Docker 和 Vagarant 有什麼不同? 如果在每個專案同時運行多個容器(container)的情況下 Docker 比 Vagrant 好在哪裡?會比用 Vagrant 同
    Thumbnail
    圖片來自 Docker (本文譯自〈Docker for PHP Developers〉) 哈囉!Docker Docker 是一個包含許多技術的概括性詞彙,它提供的工具可以幫助你把某個應用(application)的基礎架構(infrastructure)分離成數個邏輯模塊(容器),你可以只組合某
    Thumbnail
    圖片來自 Vincent PONTIER (本文譯自〈Docker for PHP Developers〉) 數年以來我都用 Vagarant  管理本地的開發伺服器,根據 Vagrant 網站所述,Vagrant  是用於創建、組態輕量的(light-weight)、可重製的(reproducib
    把指定DB的SQL檔案匯出到local: $ docker exec {CONTAINER} /usr/bin/mysqldump -u root --password=xxx {DATABASE} > backup.sql 只匯出db結構 add -d: $ docker exec {CONTAI
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
    Thumbnail
    本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
    Thumbnail
    在現代科技推動下,企業的數位轉型越來越成為不可忽視的趨勢。Docker,作為一個容器化技術的先驅,正深刻地改變著職場的工作方式和應用程式開發流程。本文將探討 Docker 在職場的應用,尤其是如何提升效能、簡化部署,以及它對現代企業的影響。
    將使用者加入Docker群組 sudo groupadd docker sudo usermod -aG docker $USER 設定開機自動啟動Docker服務 sudo systemctl enable docker sudo systemctl start docker 試跑
    Thumbnail
    教大家讓 vscode 連上遠端電腦中的 docker 環境之中,步驟詳細且附圖
    Thumbnail
    那時做總統盃黑客松時,因為要GIS 分析,資料放在 postgresql-postgis,安裝與設定上實在是麻煩。於是想說用 docker 人家建好的 postgis。果然是有,然後...
    Thumbnail
    圖片來自 Shine With Sapphire (本文譯自〈Docker for PHP Developers〉) Docker 和 Vagarant 有什麼不同? 如果在每個專案同時運行多個容器(container)的情況下 Docker 比 Vagrant 好在哪裡?會比用 Vagrant 同
    Thumbnail
    圖片來自 Docker (本文譯自〈Docker for PHP Developers〉) 哈囉!Docker Docker 是一個包含許多技術的概括性詞彙,它提供的工具可以幫助你把某個應用(application)的基礎架構(infrastructure)分離成數個邏輯模塊(容器),你可以只組合某
    Thumbnail
    圖片來自 Vincent PONTIER (本文譯自〈Docker for PHP Developers〉) 數年以來我都用 Vagarant  管理本地的開發伺服器,根據 Vagrant 網站所述,Vagrant  是用於創建、組態輕量的(light-weight)、可重製的(reproducib
    把指定DB的SQL檔案匯出到local: $ docker exec {CONTAINER} /usr/bin/mysqldump -u root --password=xxx {DATABASE} > backup.sql 只匯出db結構 add -d: $ docker exec {CONTAI