我們使用 cookie 來幫助我們改善網頁體驗。請閱讀我們的 Cookie 政策

Docker 是什麼?

Docker 是一種軟體平台與輕量級虛擬化技術,藉由軟體的技術,虛擬出一個與底層硬體功能一模一樣的介面,可讓您快速地建立、測試和部署應用程式。簡單來講是透過軟體技術模擬出一個硬體的環境。

docker asustor NAS

Docker 可以把將你的應用程式與作業環境打包在一起,包含作業系統都「包」在一起,佈署的時候就不用再擔心環境相容性的問題,方便在不同的硬體中移動。
因此只要我們能利用 Docker 把一個 App 需要執行的環境全部包在一個容器裡頭,我們就能在任何有安裝 Docker 的地方啟動並運行該容器。不再需要每次重新建置環境,也不用考慮不同機器上的安裝問題,而這正是 Docker 最強大的地方。

docker asustor NAS

作為一種新興的虛擬化方式,Docker 跟傳統的虛擬化方式相比具有眾多的優勢。
首先,由於輕量化的緣故,Docker 容器的啟動非常迅速,這相比傳統的虛擬機方式要快得多。 其次,Docker 對系統資源的使用效率很高,一台主機上可以同時執行數千個 Docker 容器。

docker asustor NAS

Docker 架構與基本元件簡介

Docker 擁有幾個基本概念,其中包含 Docker 三大重要部分與元件。

Docker 映像

Image(映像檔)被用來啟動容器的實際執行的應用程式環境。這概念類似 VM 的映像檔,VM 透過映像檔來啟動作業系統,並執行許多服務,但 Docker 的映像檔則只是檔案系統的儲存狀態,是一個唯讀的板模。

docker asustor NAS

Docker 容器

Container(容器)是一個應用程式執行的實例,Docker 會提供獨立、安全的環境給應用程式執行,容器是從映像檔建立,並運作於主機上。

docker asustor NAS

Docker 註冊表

Registries 是被用來儲存 Docker 所建立的映像檔的地方,我們可以把自己建立的映像檔透過上傳到 Registries 來分享給其他人。Registries 也被分為了公有與私有,一般公有的 Registries 是 Docker Hub,提供了所有基礎的映像檔與全球使用者上傳的映像檔。

docker asustor NAS

為什麼要使用 Docker?

想像一個情況,當你在本機開發完準備要佈署到 server 上時,你發現 server 的系統不是你熟悉的 Ubuntu 而是 CentOS,除此之外你還需要自己安裝 php7、設定 MySQL 的帳號密碼跟架設 Apache,光想到要設定這些環境頭都痛了,這時候你就需要 Docker 了。 容器除了執行其中應用外,基本不消耗額外的系統資源,使得應用的效能很高,同時系統資源消耗更少。傳統虛擬機方式執行 10 個不同的應用就要啟動 10 個虛擬機,而 Docker 只需要啟動 10 個隔離的應用即可。
具體說來,Docker 在以下幾個方面具有較大的優勢:

1. 更快速地發佈更多軟體

對開發和維運(DevOps)人員來說,最希望的就是一次建立或設定,可以在任意地方正常執行。 開發者可以使用一個標準的映像檔來建立一套開發容器,開發完成之後,維運人員可以直接使用這個容器來部署程式碼。 Docker 可以快速建立容器,快速迭代應用程式,並讓整個過程全程可見,使團隊中的其他成員更容易理解應用程式是如何建立和工作的。 Docker 容器很輕很快!大量地節約開發、測試、佈署的時間。

docker asustor NAS

2. 標準化操作

透過標準化的命令即可輕鬆部屬各種不同的應用程式。

docker asustor NAS

3. 更有效率的虛擬化,節省資金

Docker 容器的執行不需要額外的虛擬化支援,它是核心層級的虛擬化,因此可以實作更高的效能和效率,可讓您在每部伺服器上輕鬆執行更多程式碼,以提升使用率和節省資金。

docker asustor NAS

4. 方便在不同的硬體中移動和擴展

Docker 容器幾乎可以在任意的平台上執行,包括實體機器、虛擬機、公有雲(Amazon AWS, Microsoft Azure, Google cloud)、私有雲(NAS)、個人電腦、伺服器等。 這種兼容性可以讓使用者把一個應用程式從一個平台直接遷移到另外一個平台,更簡單的管理。

docker asustor NAS

Docker Container 容器與 Virtual Machine 虛擬機有甚麼不同?

一般而言,容器比較像是在作業系統層面上實作虛擬化,直接使用本地主機的作業系統,而傳統方式則是在硬體層面實作,不同的虛擬機都需要獨立的作業系統來聯絡控制硬體,所以對系統資源的要求較高。

docker asustor NAS

ASUSTOR NAS 支援 Docker

ASUSTOR NAS 的 ADM 是基於 Linux Kernel 所建構的作業系統,可相容於 Docker 的 Linux 版本。ASUSTOR 提供 Docker Community Edition (CE) 版本於多數機種*,使用者於 App Central 中下載安裝後,即可在 ASUSTOR NAS 上執行 Docker,開始佈署 Docker Hub 上眾多開發者提供的 Container,擴展更多樣化的 App、服務或各種伺服器功能於 NAS 上,進而強化 ASUSTOR NAS 更完善的功能。

*適用機種:AS10, 31, 32, 40, 50, 51, 52, 53, 61, 62, 63, 64, 65, 70 *Container 可以部署的機種依開發者所提供的映像檔支援的平台而不同,例如:AS10 (armv7, armhf),AS40 (arm64, aarch64, armv8),其他機種 (amd64, x86-64)。

docker asustor NAS

ASUSTOR NAS 支援 Portainer 強大 Docker 管理介面

Docker 並沒有官方 GUI 介面支援,要使用 Docker 需對 Docker 的指令有一定程度的了解,或參考文件依步驟下載映像檔及完成部署。Portainer 是一強大的 Docker 管理介面,透過 Web 界面的操作,更方便對於 Docker 指令不熟悉的使用者更快進入 Docker 的世界。 Docker Hub 中數千種來自才華洋溢開發者的映象檔,透過 Portainer 即可進行輕鬆佈署,Portainer 擁有人性化界面,不須下指令,僅需下載映像檔即可立刻加入完成佈署,創造 ADM 更多可能性。基於 Docker 的特性,於 Portainer 中可以直接更新映像檔的版本,使用相同的設定,重新佈署並取代原來的 Container 即可完成升級,使用最新版本的功能。

docker asustor NAS

Using Portainer with an ASUSTOR NAS