摘要:本篇我們來動手實踐在本地創建一個自己的鏡像應用,使用該鏡像創建容器并執行容器中的應用。非常簡單,我們使用命令使用鏡像創建一個容器實例此刻腦海中浮現。
上篇《前端也要學Docker啊!》介紹了 Docker 及它的三個主要概念:Image(鏡像)、Container
(容器)、Registry(倉庫) 以及Docker安裝。
本篇我們來動手實踐:在本地創建一個自己的鏡像(Node應用),使用該鏡像創建容器并執行容器中的Node應用。
創建一個Node項目在根目錄創建index.js
//index.js const Koa = require("koa"); const app = new Koa(); app.use(async ctx => { ctx.body = "Hello Docker O(∩_∩)O~~"; }); app.listen(3000);
創建 Docker 鏡像需要用到 docker build命令,而docker build命令又是根據 Dockerfile 配置文件來構建鏡像,所以我們要在項目根目錄創建一個 Dockerfile 文件:
#Dockerfile FROM node:10.13-alpine #項目的基礎依賴 MAINTAINER chenLong #項目維護者 COPY . . #將本機根目錄所有文件拷貝到容器的根目錄下 這個可以根據喜好調節路徑 EXPOSE 3000 #容器對外暴露的端口 RUN npm i #安裝node依賴 CMD npm start #在容器環境里執行的命令
你可以到 Docker 官網查看詳細的Dockfile說明
構建鏡像上面 Node 代碼已經完成了,我們使用 yarn init -y或 npm init -y 完成package.json初始化,然后安裝一個koa依賴:執行yarn add koa或 npm i koa。
然后我們在本地跑一下 node 程序:node index.js,打開瀏覽器輸入 localhost:3000 ,可以看到瀏覽器中成功顯示了 Hello Docker O(∩_∩)O~~ 。
程序沒問題,我們開始構建這個鏡像,執行命令:docker build -t docker-demo/hello-docker:v1 . (注意最后有個 . 是必須的)
-t: --tag簡寫,鏡像的名字及標簽,通常 name:tag 或者 name 格式;可以在一次構建中為一個鏡像設置多個標簽。
上面的 docker-demo/hello-docker是我們定義的鏡像名稱,v1是標簽名稱(類似版本號)
圖中藍色框表示 Dockerfile 的執行步驟。此時一個名為docker-demo/hello-docker的鏡像已經創建完成了,現在我們執行docker images查看一下:
表示本地的鏡像列表中已經有了我們剛才創建的docker-demo/hello-docker
讓Node程序在Docker中跑起來上面已經創建好了鏡像,里面包含著我們寫的代碼,現在我們需要把代碼運行起來。
非常簡單,我們使用docker run命令使用鏡像創建一個容器實例(此刻腦海中浮現 var p1 = new Person() )。
我們執行命令: docker run -i -t -p 8080:3000 docker-demo/hello-docker:v1
-i: 以交互模式運行容器,通常與 -t 同時使用;
-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
-p: 指定端口映射,格式為:主機(宿主)端口:容器端口,這里將容器的3000端口與宿主機的8080端口映射
打開瀏覽器,運行localhost:8080:
完美,容器里的代碼已經跑起來了!
總結在項目根目錄創建 Dockerfile 并配置
使用 docker build 命令創建Docker鏡像,該命令會根據 Dockerfile 里的配置來構建鏡像
使用 docker run 命令根據鏡像創建對應的容器實例并運行
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104824.html
摘要:配置網絡參照生產環境配置中的和子網章節。特別注意觀察和的子網是否與已有網絡沖突如果有沖突則參考網絡的中的方法修改子網。部署使用的是的監控方案。創建應用網絡創建你也可以改成自己的名字參考網絡的檢查子網與是否配置正確。 原文 大綱 本文只是一種實際部署方案的例子,涉及到的技術有(除Docker/Docker Swarm外): Docker overlay network Fluentd...
摘要:本篇我們來動手實踐在本地創建一個自己的鏡像應用,使用該鏡像創建容器并執行容器中的應用。非常簡單,我們使用命令使用鏡像創建一個容器實例此刻腦海中浮現。 上篇《前端也要學Docker啊!》介紹了 Docker 及它的三個主要概念:Image(鏡像)、Container(容器)、Registry(倉庫) 以及Docker安裝。 本篇我們來動手實踐:在本地創建一個自己的鏡像(Node應用),使...
摘要:采用虛擬化的技術來虛擬化出應用程序的運行環境。安裝成功后,可以通過查看版本號盡量使用最新的穩定版本。是鏡像名,是鏡像的版本號,到此你已經成功構建了一個新的鏡像,你可以通過,查看你的鏡像。部署時將此文件到生產環境服務器上。 Docker docker是一個開源的應用容器引擎,可以為我們提供安全、可移植、可重復的自動化部署的方式。docker采用虛擬化的技術來虛擬化出應用程序的運行環境。此...
摘要:采用虛擬化的技術來虛擬化出應用程序的運行環境。安裝成功后,可以通過查看版本號盡量使用最新的穩定版本。是鏡像名,是鏡像的版本號,到此你已經成功構建了一個新的鏡像,你可以通過,查看你的鏡像。部署時將此文件到生產環境服務器上。 Docker docker是一個開源的應用容器引擎,可以為我們提供安全、可移植、可重復的自動化部署的方式。docker采用虛擬化的技術來虛擬化出應用程序的運行環境。此...
摘要:應用實例創建完成后,會持續監視這些實例。創建時,會創建了一個來托管應用。通過請求,可以從集群的外部訪問一個服務。使用云提供商的負載均衡器如果支持,可以向外部暴露服務。使用在中部署第一個應用本文以為例進行。目標是將簡單的應用部署在上運行。 Kubernetes是什么? Kubernetes是容器集群管理系統,是一個開源的平臺,可以實現容器集群的自動化部署、自動擴縮容、維護等功能。可以在物...
閱讀 1492·2021-11-24 11:16
閱讀 2697·2021-07-28 12:32
閱讀 2308·2019-08-30 11:22
閱讀 1445·2019-08-30 11:01
閱讀 604·2019-08-29 16:24
閱讀 3552·2019-08-29 12:52
閱讀 1632·2019-08-29 12:15
閱讀 1338·2019-08-29 11:18