文章

顯示從 1月, 2024 起發佈的文章

Docker 之建立與使用 Docker Image 本地建立

圖片
前言 大家好上次我們教了如何下載 Docker Image 使用,今天我們要教如何產出自己的 Image,這次會使用一個 Dockerfile 範例,自行打包 Docker Image,初步練習使用 Docker 指令 下載 Dockerfile 教學檔案 在這裡我已經幫忙寫好一個 Dockerfile 範例放在 GitHub 上,希望看到我文章的人,可以親自把專案 clone 下來做練習 Docker 教學產生 Docker Image 教學專案 檔案內容 在這裡你可以看到有一個 Dockerfile 這個是在製作 DockerImage 的必要檔案 裡面的檔案內容是長這樣子,一份 Dockerfile 的腳本 FROM nginx:alpine ENTRYPOINT [ "nginx", "-g", "daemon off;" ] 產出 Docker 自己 Docker Image 接下來我們要學一個 Docker 指令,學習如何產出自己的 Docker Image,產出 Docker Image 則要使用 docker build 這個指令 在你編輯器或終端機,切換到正確專案路徑後,輸入以下指令,他可以幫助我們產出 Docker Image,由於我們在下個章節要上傳自己的 Docker Image 上去到 Docker Hub,所以產出的 Image 名稱要使用 Docker Hub 使用者名稱,後面在寫 Image 名稱是甚麼 docker build -t timmmmmm/nginx . 最後去查看 Docker Image 有沒有產出,你可以輸入以下指令查看 Docker Image docker images 輸入指令後會得到以下結果 REPOSITORY   TAG       IMAGE ID       CREATED        SIZE timmmmmm/nginx        latest    e6b3fd191a4a   3 months ago   42.6MB 補充 docker build 指令 -t: 這個意思

Docker 之建立與使用 Docker Image 雲端下載

圖片
前言 上次講到 Dockerfile、DockerImage、Docker Container 他們之間的關係,今天我們要來熟悉 Docker Image 如何使用,教你如何抓取雲端上的 Docker Image, Docker Image 下載來源 當我們今天要要使用 Docker Image 時,我們很長使用 Docker Hub 作為下載 Image 來源,有如下圖的 Docker Hub 網站,這裡有很多官方或者其他作者做好的 Docker Image 註冊 Docker Hub 帳號 在這裡我們可以去註冊 Docker Hub 帳號,這樣一來我們就可以把我們做好的 Docker Image 上傳到 Docker Hub 這個雲端服務 下載 Docker Image 接下來我們在 Docker Hub 上,搜尋 hello-world 這個 image,這個是 Docker 這家公司已經幫我們做好的 Docker Image,我們開始練習如何下載與使用 輸入以下指令,即可下載 Docker Image docker pull hello-world 您可以看到 hello-world 這個 image 確實已經下載下來 接下來我們啟動 hello-world 這個 image 的容器,輸入以下指令即可啟動容器 docker run helloworld 可以看到這個容器成功啟動 認識 Tag 版本號 接下來我們來認識 tag 這個東西,這個東西是有關 Docker Image 的版本號,比如我要使用 nginx 的 alpine 版本,在我們指令的會後面加的「:」告訴 Docker 我要哪個版本號,如果沒有加的話,預設都是抓最新版 latest docker pull nginx:alpine

Docker 之 Dockerfile、Docker Image、Docker Container 概念解說

圖片
前言 上次我們初步體驗 Docker 快速佈署能力,今天我們要來講解 Dockerfile、Docker Image 與 Docker Container 這些常見的名詞,我們來了解在我們佈署的時候做哪些事情 Docker 佈署流程 首先看到如下圖上半部,在我們一個完整的佈署流程,我們會先將我們的程式碼放進 Docker -> 然後 Docker 會幫我們產生一個程式佈署包 -> 接著在拿這個佈署包去實現我們佈署應用 在下半部我們來看剛才所做的這些事,對應的是那些事情,首先在程式碼放進 Docker 處理事情我們對應的是透過 Dockerfile 幫助我們這些事情,接著 Docker 會幫助我們產生一個叫做 Docker Image 這個程式佈署包,最後再拿這個 Docker Image 去佈署到我們 Docker Container 之上

Docker 之初體驗

圖片
前言 大家好在先前我們講了什麼是 Docker,Docker 好處有什麼以及怎麼安裝 Docker,今天我們要來開始初體驗 Docker 容器,使用後您會發現 Docker 非常的方便快速 Docker Hub 介紹 首先在開始學怎麼抓取 Docker Image 之前,我們要先來介紹 Docker Hub 這個平台,這是 Docker 為我們提供的一個雲端平台,他是可以讓我們存放 Docker Image 的這麼一個服務,可以透過他抓取我們想要的 Docker Image,也可以將我們所做的 Docker Image 存放到這個平台 查看 Nginx Image 接下來我們開始來準備抓取 Docker Image 工作準備,首先先在搜尋輸入 Nginx 查詢 Image,可以看到第一個就是了,請點進去 確認 Docker Image 版號 點進去 Nginx 裡面的頁面後,這裡會有一些關於這個 Image 的資訊,我們點擊如下圖,按下 Tags,並搜尋 alpine 的版本 往下捲動,我們要去抓如下圖 alpine 的版本 抓取 Nginx Docker Image 與佈署 確認好本版本後,我們開始抓取 Image 並佈署,輸入以下指令抓取 Image docker pull nginx:alpine 抓取完 Image 後,開始試著佈署 Nginx,輸入以下指令,即可開始佈署 docker run -d -p 80:80 nginx:alpine 在這時候打開瀏覽器,可以看到我們 Nginx 啟動成功 補充 為何我們抓取 Image 時,要特別抓 alpine 版本 ? 因為 alpine 是所以 linux 當中最小的系統,抓取速度快

Docker 之如何安裝 Docker 容器

圖片
前言 上次我們講到 Docker 的功用與好處,今天我們要在講解,如何安裝 Docker 這個容器,讓我們在之後的教學應用更好的實作與練習,現在讓我們開始吧 Docker Engine 與 Docker Desktop 首先在講解怎麼安裝 Docker 時,我們先講解 Docker Engine 跟 Docker Desktop 有甚麼不一樣,Docker Engine 是 Docker 最核心的部分,只要在電腦安裝了這個引擎,就可以馬上體驗 Docker,但是由於在操作 Docker 時,幾乎是命令介面,所以 Docker 後來有出 Docker Desktop,提供 UI 介面,盡可能貼近使用者操作,不過還是有很多事情是不能透過 Docker Desktop 去操作的 Docker 安裝環境選擇 如果你的電腦是一般練習的電腦,例如: 桌機、筆電,且作業系統是桌面型作業系統,那就可安裝 Docker Desktop,即可幫助你直接安裝好 Docker Engine,有完善的 UI 介面,如果你想自己灌一台伺服器等級的虛擬機,例如: 安裝 Ubuntu Server,那即可安裝好 Docker Engine 就可以體驗 Docker,不建議在虛擬機上安裝例如像 Ubuntu Desktop,裡面又安裝 Docker Desktop ,因為可能會有資源不夠的問題,現在如何安裝 Docker Engine 及 Docker Desktop 安裝 Docker Desktop 在這裡我們已 Windows 為範例,在我的文章最下面提供 Docker 官網下載網站,如果你的作業系統是 Windows 作業系統,就下載 Windows 版本 Docker Desktop,並依照安裝指示操作,即可完成安裝 以下是安裝玩後的 Docker Desktop 樣子,即可開始體驗 Docker 安裝 Docker Engine 如果你的作業系統是屬於伺服器等級的作業系統那只要安裝 Docker Engine 就好,在文章最下方會提供 Docker 官網安裝 Docker Engine 文獻,而下圖是以 Ubuntu 為例子的文獻,按照官網說明指令輸入,相信不會太困難

Docker 之功用及好處

圖片
前言 上次我們對 Docker 架構進行了講解,今天我們來講解 Docker 的好處,他到底可以幫助我們什麼事情 ? 為什麼 Docker 如此受人喜歡 ? 現在就來講述 Docker 有什麼好處 跨平台 Docker 可以確保在不同的作業系統是可運作的,可減少機器運作的問題 版本控制 打包 Docker Image 這個過程,是可進行版本控制的,達到 Docker Image 版本化和可共享 自動化建構 Docker 可以簡化佈署流程,透過 Dockerfile 即可定義佈署流程,自動化建構打包過程 建立乾淨測試環境 Docker 在建構環境時,可以讓我們建構乾淨的測試環境,讓我們可以在乾淨的環境上,進行測試 容器化 Docker 當每起一個容器時,容器跟容器之間是互相隔離互不干擾

Docker 之 Docker 架構

圖片
前言 上次我們針對 Docker 這樣容器化技術做了一點介紹,今天我們要來講解 Docker 架構,你是否發現在每次程式上伺服器的流程很麻煩呢 ? 是否發現你寫的程式在別的作業系統不能用呢 ? 如果你遇到這些問題,Docker 都可以幫助你解決這些問題 Docker 架構 在 Docker 這個容器架構,是可以跨平台的,我們可以將我們做好的 Docker Image,上傳到 Docker Hub 上,透過不同的作業系統進行拉取,以便我們快速進行佈署,可以看到有如下圖,在 Linux 上我們安裝上 Docker Engine,在上面建置我們容器,容器裡面擁有著 Docker Image,而在 Windows 系統,也同樣掛載 Docker Engine,在上面建置我們容器,容器裡面擁有著 Docker Image,在 Mac 作業系統也是同樣的動作 結語 可以看到 Docker 是這麼如此方便,不但可以跨平台作業,可以節省佈署所花費的時間,可以建立乾淨環境,使用最少的資源,幫助我們解決佈署會遇到的事情

Docker 什麼是 Docker ?

圖片
前言 大家好我們今天要來教 Docker 這項技術,什麼是 Docker ? Docker 可以幫助我們做什麼事情 ?          Docker 是一項容器化技術,他可以降低我們在佈署 App 時,讓我們可以有效的分配作業系統資源,降低佈署作業成本,現在讓我們來了解 Docker 要解決的問題 傳統佈署遇見問題 首先我們先來看傳統我們在佈署應用程式時,所遇見的問題,我們來看我們下圖的系統架構,有一台 Host 主機,上面掛著作業系統,而作業系統上面掛著三個應用程式,這時候問題出現,當其中有一個應用程式出現問題,可能連帶影響其他應用程式也跟著出現問題 傳統主機模式 接下來來看到為了解決一台主機掛載多個應用程式,在傳統上會分成三台主機,上面掛載不同的應用程式,當如果有一個應用程式掛掉時,也不會影響其他主機,但是這樣個資源是高的 VM 模式 接下來來看到為了解決多台主機所耗費的資源,在後來我們改了 VM 模式,可以看到有如下圖,在一台 Host 主機,上面掛載作業系統,在作業系統上面我們掛載一個叫做 Hypervisor,這個東西提供了虛擬化的技術,在這上面我們掛載 VM,在 VM 在上面我們掛載作業系統,而在作業系統掛載我們的應用程式,可以看到雖然我們可以不須像傳統模式一樣,花費的硬體資源這麼高,當如果有一個應用程式出現錯誤時,也不會影響其他應用程式,達到隔離與保護的效過,但是我們每次在佈署一個應用程式時,都在起一個 VM 去做前置作業,在硬體資源上也是滿高的 容器模式 隨著時代的演進,技術的成長,現在擁有了容器模式,有如下圖我們一樣會有一台 Host 主機,在這主機安裝作業系統,上面會掛載一個東西叫做 Docker Engine,而在 Docker Engine 上我們會掛載不同的容器,而在容器上面會掛載不同的應用程式,然而當如果有一個應用程式出現錯誤時,也不會影響其他應用程式,每個容器是互相隔離的 三個模式資源比較 在傳統模式因為要耗費很多主機資源,所以傳統模式是最高的,而在 VM 模式情況下,所耗費的資源是中,在容器模式運作下所耗費的資源是最低的 容器化技術 接下來我們來統整一下,什麼是 Docker ? Doc