iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Windows下怎么运用Docker部署Node.js开发环境
  • 112
分享到

Windows下怎么运用Docker部署Node.js开发环境

2023-06-17 09:06:46 112人浏览 安东尼
摘要

这篇文章主要讲解了“windows下怎么运用Docker部署node.js开发环境”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Windows下怎么运用Docker部署node.js开发环境

这篇文章主要讲解了“windows下怎么运用Docker部署node.js开发环境”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Windows下怎么运用Docker部署node.js开发环境”吧!

希望实现的效果:

1、依然在windows下编辑源代码,在docker容器中运行代码,最后在windows的浏览器中看到运行结果,方便后续debug。

2、可以将我开发完成的程序和运行环境一起打包制作成docker的image,移交image给小伙伴运行或者直接发布到服务器上。

安装与启动

docker引擎核心是运行在linux操作系统上的linux容器。所以要在windows上使用docker容器,先要提供linux运行环境。

去docker官网下载msi安装程序,若你的系统版本(例如64bit windows 10 pro, enterprise and education)支持hyper-v虚拟技术,那么不需要使用额外的虚拟机(virtualbox),安装程序会自动为你安装完成docker(docker for windows)。

the hyper-v package must be enabled for docker for windows to work. the docker for windows installer will enable it for you, if needed. (this requires a reboot). if your system does not satisfy these requirements, you can install docker toolbox, which uses oracle virtual box instead of hyper-v.

若不能使用hyper-v虚拟技术,docker项目组也提供了docker toolbox工具,可以很方便的在windows环境下安装docker。

更详细内容参考docker官方文档-toolbox。

本文中的执行系统为win7,故使用docker toolbox。

安装过程会附带安装oracle vm virtualbox虚拟机,如下图:

Windows下怎么运用Docker部署Node.js开发环境

kitematic为docker的gui管理工具,打开docker terminal可以快速地启动docker。

Windows下怎么运用Docker部署Node.js开发环境

可以发现此时docker给default Machine分配了一个ip:192.168.99.100。我们可以直接在该终端下执行docker命令。

由于在windows中运行docker多加了一层虚拟机,有几个概念需要了解:

  • docker主机指的是linux虚拟机,也就是说,此时docker主机(即linux虚拟机)的ip地址为192.168.99.100。

  • 与一般的ssh访问虚拟机一样,我们也可以通过该ip用ssh登录到docker主机去执行命令。(用户名:docker;密码:tcuser)

  • 如要用root权限去执行linux命令(如mount),则需要打开virtualbox。

Windows下怎么运用Docker部署Node.js开发环境

Windows下怎么运用Docker部署Node.js开发环境

搭建image

新安装好的docker主机中没有任何image(docker images 查看已有的image)。运行node应用需要搭建node环境镜像,可以从docker hub上pull轻量级的linux镜像作为基础镜像(如Centos),在上面手动安装node;也可以直接pull一个已安装了node的镜像(docker pull 拉取镜像)。从docker hub下载镜像可能非常慢,可以借助国内的云服务商下载(如)。

现在假设我们pull了一个不包含node环境的centos镜像。

$ docker run -it centos bash

启动一个容器,并进入容器的bash进行交互式操作。采用与centos下一样的方式安装node。安装完成后exit退出容器。请放心,如果不使用docker rm或者docker run时不增加--rm参数,即使退出容器,容器本身及其中的修改不会消失。可以用docker ps -a查看所有容器,docker ps查看正在运行的容器。

$ docker commit <container_id> <image>

提交之前修改的容器到新的image。该镜像就是已经安装了node环境的镜像(命名为nodejs)。

在后续的开发中我们可以用docker run -it nodejs bash启动容器。

在windows和虚拟机之间共享文件

我们现在需要在docker容器中运行源代码,而docker容器是在docker主机中的,所以首先,我们需要先保证docker主机(即linux虚拟机)能访问到windows中的源代码文件。

打开virtualbox,点击“设置”->“共享文件夹”,指定路径和名称后勾选“自动挂载”和“固定分配”。“自动挂载”可以使得虚拟机下次启动时自动挂载文件夹,否则每次启动都需要重新手动挂载。

 Windows下怎么运用Docker部署Node.js开发环境

如果顺利,重启虚拟机输入mount命令,可以看到共享文件夹挂载到了哪里,进入该目录就能看到与windows下同步的文件。

Windows下怎么运用Docker部署Node.js开发环境

Windows下怎么运用Docker部署Node.js开发环境  

如果自动挂载遇到问题,取消这个选项,使用以下命令手动挂载:

mount -t vboxsf docker_share <mount_point>

在docker容器中运行node代码

首先在windows的共享文件夹下编辑测试代码app.js:

var Http = require('http');  http.createserver(function (req, res) {   res.writehead(200, {'content-type': 'text/plain'});   res.end('hello world\n');  }).listen(1337); console.log('server running at http://0.0.0.0:1337/');

可以在docker主机中看到该文件。

用nodejs镜像启动一个容器,我们希望这个容器能访问docker主机中的文件作为源代码,还希望能在windows下访问运行后的执行端口查看结果。用以下命令启动容器:

$ docker run -v /docker_share:/app -p 1337:1337 -it nodejs bash

-v 主机目录:容器数据卷目录 使得主机目录被挂载到容器中,可被容器访问。

-p 主机端口:容器端口使得容器端口被映射到主机上,可以被容器外部访问到。

注: 重复多个-p命令可以映射多个端口。

(docker 0.11版本以上可以使用--net=host参数使得容器中的所有端口映射在docker主机上。故也可使用:)

$ docker run -v /docker_share:/app --net=host -it nodejs bash

进入容器中对应的数据卷目录,执行node app.js

 Windows下怎么运用Docker部署Node.js开发环境

windows下通过浏览器访问192.168.99.100:1337可看到结果

Windows下怎么运用Docker部署Node.js开发环境 

至此,基本的node应用已经能在docker下跑起来啦~

进一步的开发工作

1. npm install

一般在node工程中都会存在node_modules依赖需要用npm install安装。在docker下,期望运行应用的容器中,同样可以执行该命令。但注意增加--no-bin-links指令来避免创建软连接。

npm install --no-bin-links

2. 关联其他服务与容器互联

许多node应用都会关联启用redismysql等服务。直接地,我们可以像在windows下一样打开同一个容器的多个终端分别运行服务或执行代码。用以下命令进入一个正在运行的容器:

$ docker exec -it <container> bash

更优雅地,我们将不同的服务运行在不同的容器上,然后使用--link name:alias容器互联的方式将他们关联起来。

3. 实时响应代码变化

在开发过程中,如果每次修改代码都需要结束node进程然后重启必然会很麻烦。可以使用工具实现监控代码变化并自动重启进程的效果,这样一来只需要在浏览器下刷新就可以看到新的运行效果。

安装nodemon:

npm install -g nodemon

依然以app.js为例,在容器中运行app.js时使用命令:

nodemon -l app.js

注:如果不在容器下运行,使用nodemon app.js即可,而在容器中,需要使用-l或--legacy-watch参数打开chokidar轮询,才能监听到挂载目录中文件的改变。

Windows下怎么运用Docker部署Node.js开发环境

Windows下怎么运用Docker部署Node.js开发环境

 尝试更改app.js内容,保存后可以发现nodemon自动重启了:

Windows下怎么运用Docker部署Node.js开发环境 

刷新浏览器看到修改后的结果:

Windows下怎么运用Docker部署Node.js开发环境 

关于nodemon,更详细的使用参见GitHub-nodemon。

打包源码和环境为image

在工程目录下编辑dockerfile和.dockerignore文件。dockerfile:

from nodejs# create app directoryrun mkdir -p /usr/src/appworkdir /usr/src/app# install app dependenciescopy package.JSON /usr/src/app/run npm install# bundle app sourcecopy . /usr/src/appexpose 8080cmd [ "npm", "start" ]

from指定基础镜像,接下来列出基于基础镜像需要做的操作命令,搭建起新的image环境(包括复制源码和执行npm install)可以参考。

.dockerignore:

node_modulesnpm-debug.log

在build新镜像时忽略其中的文件。

在docker主机中的工程目录下(dockerfile所在目录)使用命令:

$ docker build -t <imagename> . //注意末尾的点不可省去

可得到自行build的镜像。该镜像会自动添加到你的docker主机下,你可以直接启动新镜像的容器运行代码(镜像内就包含代码,所以无需重复挂载到数据卷,不过就不能在windows下修改了)。

感谢各位的阅读,以上就是“Windows下怎么运用Docker部署Node.js开发环境”的内容了,经过本文的学习后,相信大家对Windows下怎么运用Docker部署Node.js开发环境这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Windows下怎么运用Docker部署Node.js开发环境

本文链接: https://www.lsjlt.com/news/288041.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Windows下怎么运用Docker部署Node.js开发环境
    这篇文章主要讲解了“Windows下怎么运用Docker部署Node.js开发环境”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Windows下怎么运用Docker部署Node.js开发环境...
    99+
    2023-06-17
  • Windows下如何用Docker部署Node.js开发环境
    这篇文章主要介绍了Windows下如何用Docker部署Node.js开发环境的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Windows下如何用Docker部署Node.js...
    99+
    2022-11-30
    windows docker node.js
  • docker怎么部署php开发环境
    要部署PHP开发环境,可以使用Docker来创建一个容器化的PHP开发环境。以下是一些步骤: 安装Docker:首先,你需要在你...
    99+
    2023-10-23
    docker php
  • CentOS下怎么部署java开发环境
    本篇内容主要讲解“CentOS下怎么部署java开发环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CentOS下怎么部署java开发环境”吧!硬件JDK1.8.0_121(截止2017-1-...
    99+
    2023-06-27
  • centos怎么部署node.js环境
    本篇内容主要讲解“centos怎么部署node.js环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“centos怎么部署node.js环境”吧!一 打开cen...
    99+
    2022-11-30
    centos node.js
  • docker+jenkins+node.js自动化部署环境怎么搭建
    本篇内容介绍了“docker+jenkins+node.js自动化部署环境怎么搭建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、dock...
    99+
    2023-06-17
  • 怎么搭建docker+jenkins+node.js自动化部署环境
    本篇内容介绍了“怎么搭建docker+jenkins+node.js自动化部署环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔...
    99+
    2024-04-02
  • 怎么用Docker快速部署GPU环境
    这篇文章主要为大家展示了“怎么用Docker快速部署GPU环境”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用Docker快速部署GPU环境”这篇文章吧。在 Linux 服务器上使用 GPU...
    99+
    2023-06-15
  • centos怎么搭建部署docker环境
    这篇文章主要介绍“centos怎么搭建部署docker环境”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“centos怎么搭建部署docker环境”文章能帮助大家解决问题。1、Docker的存在解决的...
    99+
    2023-07-02
  • ubuntu环境下怎么运行docker
    这篇文章主要介绍“ubuntu环境下怎么运行docker”,在日常操作中,相信很多人在ubuntu环境下怎么运行docker问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ubuntu环境下怎么运行docker...
    99+
    2023-07-04
  • 怎么使用Docker快速部署ELK环境
    这篇文章主要介绍“怎么使用Docker快速部署ELK环境”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Docker快速部署ELK环境”文章能帮助大家解决问题...
    99+
    2024-04-02
  • Linux环境下GRE怎么部署
    今天小编给大家分享一下Linux环境下GRE怎么部署的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。GRE(Windows不支...
    99+
    2023-06-26
  • node.js自动化部署环境怎么搭建
    本篇内容介绍了“node.js自动化部署环境怎么搭建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、docker部分1.1、docker简...
    99+
    2023-07-04
  • Docker中怎么部署LNMP服务器环境
    今天小编给大家分享一下Docker中怎么部署LNMP服务器环境的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。镜像下载[roo...
    99+
    2023-06-28
  • 怎么使用docker在linux环境中部署springboot包
    小编给大家分享一下怎么使用docker在linux环境中部署springboot包,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!因为springboot是内嵌了t...
    99+
    2023-06-14
  • 怎么使用docker部署centos系统测试环境
    今天小编给大家分享一下怎么使用docker部署centos系统测试环境的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、检查...
    99+
    2023-07-05
  • Linux环境下怎么部署Consul集群
    这篇文章主要讲解了“Linux环境下怎么部署Consul集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux环境下怎么部署Consul集群”吧!1.Consul概念1.1什么是Con...
    99+
    2023-06-29
  • jspXCMS开发环境下部署的方法和原理是什么
    这篇“jspXCMS开发环境下部署的方法和原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“jspXCMS开发环境下部...
    99+
    2023-06-26
  • windows下怎么配置与安装node.js环境
    本篇内容介绍了“windows下怎么配置与安装node.js环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2022-11-30
    windows node.js
  • linux怎么搭建node.js开发环境
    这篇“linux怎么搭建node.js开发环境”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇...
    99+
    2022-11-30
    linux node.js
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作