Build a container application on Azure (上)

什麼是容器

Josie Tseng
eCloudture
4 min readJan 21, 2022

--

容器化技術(Containerization)在近期非常的火紅,其實這項技術早在 2008 年就出現了,是由 Linux 提出 LXC(Linux Container)的概念,為了解決當時虛擬化技術(hypervisor)繁雜的程序,讓使用者更專注在開發應用程式上。

而容器化技術是什麼呢?

就是將應用程式(application)、運行環境(running environment)、函式庫(library)⋯ 等這些應用程式所需的元件,全部封裝在一起,應用程式不必受到作業系統或環境影響,到哪都可以執行,猶如筆電一樣,不管到哪裡,可以隨時隨地使用它,而不像是桌上型電腦,需要環境配置才能做使用。

什麼是 Docker

每當提到容器時,相信大家都對 Docker 這個名詞不陌生。

那其實 Docker 是一種容器的標準,是基於 LXC 概念所衍生出來的容器化技術,同時也是 Open source 的軟體平台,你可以在上面快速建立、測試及部署應用程式。

Docker 有三大重要的基本概念,分別是 Docker 映像檔(images)、Docker 容器(Container)以及 Docker 倉庫(registries)。

  • Docker 映像檔(images): Docker 映像檔為 Docker 容器被啟動時,所執行的應用程式環境。與虛擬機的映像檔相似,虛擬機透過映像檔啟動作業系統,而 Docker 則是將檔案系統的狀態儲存於映像檔中。其中 Docker 映像檔是唯讀的模板。
  • Docker 容器(Container): Docker 容器是應用程式執行的 Instance。開發者透過映像檔啟動容器,就可在容器上運行服務。
  • Docker 倉庫(registries): Docker 倉庫是儲存映像檔的地方,開發者可以將自己的映像檔上傳至倉庫上,供別人下載使用,也可透過 Docker 倉庫讓映像檔在不同裝置上輕鬆的搬移。

那在 Azure 上要如何建置 Container 呢?

首先你必須要建立映像檔,在 Azure 上有一個服務是專門存放映像檔 — Azure Container Registry,在這次的文章即將教大家如何建立映像檔。

如何建置映像檔

  • 首先登入到 Azure 平台,進到 ACR 的服務介面,建立一個 Container Registry。
  • 建立完成後,在你的電腦或是虛擬機上,確認是否有安裝 Docker。
$ docker -v
Docker version 20.10.11, build dea9396
  • 建置 Dockerfile 來建立所需要的映像檔。
FROM php:7.2-apache

RUN echo "Hello World!" > /var/www/html/index.html
  • 將此映像檔 Push 到 ACR 上,輸入 az acr build --registry <your-registry-name> --image <image-name>:<version> .

此步驟是透過 Azure cli 執行,請先登入再進行以下操作。

  • 接著返回 ACR portal 頁面,在左側導覽格點選 Repositories,即可看到剛剛推上來的映像檔!

結論

此映像檔是在構建容器的其中一部分,它就像模具一樣,透過它刻畫出想要的應用程式,然而使用者可以搭配 ACI 、 AKS 及 Azure Container app 這類 Instance 服務來建立容器應用程式!我們也會再一一跟大家做介紹。

如果對 Azure Container app 有興趣的民眾,也可以參考此篇部落格 【2021 Microsoft Ignite 特輯】- Azure Container Apps

--

--