將Docker image部屬到Minikube

閱讀時間約 5 分鐘
1. 建立docker image
首先,寫一個Node.js的簡單web程式,index.js:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
  res.send('Vic’s Hello World!');
});
app.listen(5000, () => {
  console.log('Listening on port 5000!');
});
可使用此指令來執行,看看有無問題:
$ node index.js

若沒有安裝nodejs記得先安裝:
$ sudo apt install nodejs

若沒有npm記得安裝:
$ sudo apt install npm

因為有用到express module記得安裝:
$ npm install express

確定都有安裝後,執行index.js:

將著寫一個Dockerfile,內容如下:
FROM node:8.9-alpine
RUN mkdir -p /hello_world
WORKDIR /hello_world
COPY index.js /hello_world
RUN npm install express
EXPOSE 5000
CMD [ "node", "index.js" ]

將Dockerfile跟index.js放在同一個path:


接著執行Dockerfile build docker image:
$ docker build -t vic/hello_world .

用指令確認 image 是否存在:
$ docker images |grep hello_world
=> 用關鍵字找
$ docker images
=> 列出全部

使用docker run 建立並執行container,之後使用curl測試web app,可看到成功得到reponse: Vic’s Hello World!
測試完畢後停止container。
$ docker run --name hello_world -d -p 3000:5000 vic/hello_world
$ curl localhost:3000
$ docker stop hello_world
#-name表示container的別名,-d表示在背景執行container,-p為port mapping(主機port:容器port)。

列出所有container:
$ docker ps -a 
2. 將docker image部屬到minikube
雖然 image 和 Kubernetes 都是在本機,但是 Kubernetes 要取得 image ,需要透過 image repository,如 DockerHub。
不過透過這種方式,可以讓minikube 用本機上的 image 來部署:
$ minikube start --driver=docker
=> 先啟動minikube
$ eval $(minikube docker-env)

在minikube建立pod:
$ kubectl run hello-world --image=vic/hello_world --restart=Never --image-pull-policy=Never
# --image-pull-policy=Never 表示要使用本機的image。


查看pods:
$ kubectl get pods
接下來使用minikube ssh驗證看看:
$ POD=$(kubectl get pods hello-world -o wide -o custom-columns=IP:status.podIP --no-headers)
=>取得pod ip
$ minikube ssh curl $POD:5000
這樣就成功部屬app到minikube囉!
#Note:
刪除pod:
$ kubectl delete pods hello-world


下一篇,透過NodePort service直接連線k8s pod中的app。

為什麼會看到廣告
21會員
161內容數
留言0
查看全部
發表第一個留言支持創作者!
Vic Lin的沙龍 的其他內容
透過CI/CD工具,如最常見的Jenkins,可以讓工程師專注在開發上,只要將code push到git後,就會有一整套完整的整合、測試、部屬流程,可以大大節省很多時間呢。
透過CI/CD工具,如最常見的Jenkins,可以讓工程師專注在開發上,只要將code push到git後,就會有一整套完整的整合、測試、部屬流程,可以大大節省很多時間呢。
你可能也想看
Google News 追蹤
Thumbnail
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
要讓臉部肌肉鍛鍊得滿臉橫肉,需要通過特定的臉部運動來增強臉部肌肉。以下是一些可以增強臉部肌肉的鍛鍊方法: 1. 臉部撐開練習 - 把嘴巴張大,儘可能地撐開,然後保持這個姿勢幾秒鐘。這個動作可以鍛鍊臉頰肌肉。 魚嘴運動 - 嘴唇向內收攏,模仿魚的嘴型,然後上下嘴唇交替做啜吸
Thumbnail
薑黃萃取物(Turmeric Extract)主要來自薑黃(Curcuma longa)植物的根部,薑黃是一種常見的香料,也是許多傳統醫療系統中的重要成分。其主要活性成分是薑黃素(Curcumin),這是一種強效的植物化學物質,擁有多種潛在的健康益處。 以下是薑黃萃取物的主要功效及其科學證據:
Thumbnail
願望是生命的禮物 誰是天選之子,注定要體驗並享受無窮無盡的豐饒呢?誰天生就自帶主角光環,注定是轉運造命的小褔星呢? 《潛富》告訴你,生命最偉大的運作之道,從來是大道至簡的。 在你之內,有一股無限的力量,可以提振你、指引你,帶你走向成功與富足的殿堂,它能夠讓你致富,讓你活出榮耀,這股
Thumbnail
突然很感恩有這樣的頻道存在,並且陪伴了我無數的日與月
Thumbnail
現在的生活很完美,或許多了一個你可以更加完整
Thumbnail
這篇文章介紹了三種將 PDF 轉換為 Word 的方法,包括使用 Microsoft Word、在線轉換工具和 Adobe Acrobat DC。此外,文章提供了保存檔案、常見問題解答等相關提示。
Thumbnail
久米南町位於岡山縣的中心位置,以千龍町和法然上人的誕生寺而聞名,北庄和上籾田的梯田被選為日本梯田百選之一,擁有豐富的自然風光和溫暖的氣候,是一個自然與文化並存的小鎮。JR和國道縱貫縣中心南北,設有3個車站,可輕鬆前往縣內中心,國道53號線位於岡山縣約中部,距縣首府岡山市約40公里,距市區核心城市津山
Thumbnail
凡你所願,宇宙必成就 你滿意自己的創造嗎?當新的願望像音符般在內心躍動時,你感覺得到驚喜嗎?你只會接收到「你已經準備好要接收的東西」,那你準備好自己了嗎? 你的宇宙建立於全然的圓滿,宇宙無時無刻都在向你顯現,無論是令人稱羨的成就、鍾愛的關係,或是任何美好的事物。你之所以來到這裡,是為了體
Thumbnail
前言 上次交到 Runner 與 Executor 運作方式,今天要來講 Gitlab 與 Docker 之間運作,我們來了解一下,Gitlab 是怎麼幫我們這些指令,之後在自動化佈署的章節會使用到,實現更又效率的佈署。 Gitlab Runner 運作 在這裡你會看到特別的名詞,像是 git
Thumbnail
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
要讓臉部肌肉鍛鍊得滿臉橫肉,需要通過特定的臉部運動來增強臉部肌肉。以下是一些可以增強臉部肌肉的鍛鍊方法: 1. 臉部撐開練習 - 把嘴巴張大,儘可能地撐開,然後保持這個姿勢幾秒鐘。這個動作可以鍛鍊臉頰肌肉。 魚嘴運動 - 嘴唇向內收攏,模仿魚的嘴型,然後上下嘴唇交替做啜吸
Thumbnail
薑黃萃取物(Turmeric Extract)主要來自薑黃(Curcuma longa)植物的根部,薑黃是一種常見的香料,也是許多傳統醫療系統中的重要成分。其主要活性成分是薑黃素(Curcumin),這是一種強效的植物化學物質,擁有多種潛在的健康益處。 以下是薑黃萃取物的主要功效及其科學證據:
Thumbnail
願望是生命的禮物 誰是天選之子,注定要體驗並享受無窮無盡的豐饒呢?誰天生就自帶主角光環,注定是轉運造命的小褔星呢? 《潛富》告訴你,生命最偉大的運作之道,從來是大道至簡的。 在你之內,有一股無限的力量,可以提振你、指引你,帶你走向成功與富足的殿堂,它能夠讓你致富,讓你活出榮耀,這股
Thumbnail
突然很感恩有這樣的頻道存在,並且陪伴了我無數的日與月
Thumbnail
現在的生活很完美,或許多了一個你可以更加完整
Thumbnail
這篇文章介紹了三種將 PDF 轉換為 Word 的方法,包括使用 Microsoft Word、在線轉換工具和 Adobe Acrobat DC。此外,文章提供了保存檔案、常見問題解答等相關提示。
Thumbnail
久米南町位於岡山縣的中心位置,以千龍町和法然上人的誕生寺而聞名,北庄和上籾田的梯田被選為日本梯田百選之一,擁有豐富的自然風光和溫暖的氣候,是一個自然與文化並存的小鎮。JR和國道縱貫縣中心南北,設有3個車站,可輕鬆前往縣內中心,國道53號線位於岡山縣約中部,距縣首府岡山市約40公里,距市區核心城市津山
Thumbnail
凡你所願,宇宙必成就 你滿意自己的創造嗎?當新的願望像音符般在內心躍動時,你感覺得到驚喜嗎?你只會接收到「你已經準備好要接收的東西」,那你準備好自己了嗎? 你的宇宙建立於全然的圓滿,宇宙無時無刻都在向你顯現,無論是令人稱羨的成就、鍾愛的關係,或是任何美好的事物。你之所以來到這裡,是為了體
Thumbnail
前言 上次交到 Runner 與 Executor 運作方式,今天要來講 Gitlab 與 Docker 之間運作,我們來了解一下,Gitlab 是怎麼幫我們這些指令,之後在自動化佈署的章節會使用到,實現更又效率的佈署。 Gitlab Runner 運作 在這裡你會看到特別的名詞,像是 git