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