GVKun编程网logo

Nodemon不会在Windows Docker环境中重新启动(node无法正常启动)

28

此处将为大家介绍关于Nodemon不会在WindowsDocker环境中重新启动的详细内容,并且为您解答有关node无法正常启动的相关问题,此外,我们还将为您介绍关于DockerforWindows和

此处将为大家介绍关于Nodemon不会在Windows Docker环境中重新启动的详细内容,并且为您解答有关node无法正常启动的相关问题,此外,我们还将为您介绍关于Docker for Windows和Docker在Windows上有什么区别?、docker 在windows 环境搭建、Dockercompose Node.js 重新启动、Docker快速开始-在Windows上使用Docker Desktop的有用信息。

本文目录一览:

Nodemon不会在Windows Docker环境中重新启动(node无法正常启动)

Nodemon不会在Windows Docker环境中重新启动(node无法正常启动)

我的目标是建立一个Docker容器,当从主机检测到文件更改时,该容器将自动重新启动NodeJS服务器。

我选择了nodemon来监视文件的更改。

在Linux和Mac环境中,nodemon和docker可以正常工作。

但是,当我在 Windows环境中时 ,nodemon不会重新启动服务器。

这些文件在主机上更新,并使用volumes我的docker-compose.yml文件中的参数链接。

运行时,我可以看到文件已更改docker exec <container-name> cat/path/to/fileChanged.js。这样,我知道文件已正确链接并且已在容器中进行了修改。

有什么原因导致nodemon不重新启动Windows服务器?

答案1

小编典典

使用nodemon --legacy-watch轮询文件更改,而不是听文件系统事件。

VirtualBox
不会通过vboxfs共享将文件系统事件传递给Linux
VM。如果您使用的是Windows Docker,则HyperV似乎也不会传播文件系统事件。

Docker for Windows和Docker在Windows上有什么区别?

Docker for Windows和Docker在Windows上有什么区别?

Windows上的Docker似乎是Windows Server 2016内置的东西? 并支持在Docker容器中运行Windows,并使用Windows作为Docker容器主机。 这是否支持Linux? 我不这么认为,我认为它只支持运行Windows Docker容器。 这似乎也是由Microsoft维护的。

Docker for Windows似乎是由Docker团队创build的一个独立安装,用于将Linux Docker引入Windows。 所以Windows可以是Docker主机,但所有的容器仍然只是普通的Linux容器。 这是否支持Windows容器? 我不这么认为,我认为它只支持运行Linux Docker容器。 这似乎也是由Docker维护的。

另一个值得注意的事情是, 用于Visual Studio的Docker Tools似乎只支持Docker for Windows,而不支持Windows上的Docker。

我真正想要的是两者之间的差异,这是一个很好的比较。 每个人都有什么特点,他们在哪里相似,他们在哪里有所不同。 他们会不一样,还是会一起来?

运行groovy时windows CMD的怪异行为

发送stdout文件没有发球

C ++ Windows32 GDI填充三angular形

通过Windows控制台使用Docker:包含本地卷名称的无效字符

我如何重命名DOS下当前目录下的所有隐藏目录?

RegEx取代RegEx

使用c#在远程Windows服务器上创build本地用户

启动mongod.exe / mongo.exe时出错0xc000007b

更新Ruby 1.9.3 – > 2.0.0而不会丢失gem

在Windows 7上将软件包安装到虚拟环境中

Windows上的Docker是一种通俗的方式来引用在Windows上运行的Docker引擎 。 我觉得这有助于将其视为Windows容器主机 ,所以是Windows容器 。 这将是你将在Windows server 2016机器上运行的。 所以也许更好的名字是Docker for Windows server ,我相信人们也用它。 我仍然喜欢Windows容器主机。 这意味着它在一天结束时只有Docker引擎,甚至不需要任何Docker客户端(docker CLI,docker-compose等)。

用于Windows的Docker是用于在Windows上运行Linux和Windows容器的产品。 这不是为了生产环境 ,而是用于Windows的桌面/客户端SKU,因此是Windows 10的要求。 所以你可以把它看作是Docker for Windows 10.因为DfW可以运行两种容器类型,所以它们在你的机器上设置的配置有所不同:

当使用Linux Containers时,DfW会创建一个Hyper-V的MobyLinuxVM,它内部运行Linux容器,透明,就像在Windows 10主机上运行一样。

使用Windows容器时,DfW将在Windows上安装与Docker相同的组件,以便拥有Windows容器主机。 您现在已经安装了Windows Docker Engine安装程序。 这样,您就可以在Win 10客户端SKU上运行Windows容器。

理论上你可以在Windows server上安装DfW,我还没有试过,所以我不知道这是否会失败,但为什么要在生产中的Windows主机上运行Linux容器? 在生产中,您将拥有运行Linux容器的Linux容器主机和运行Windows容器的Windows容器主机,这样可以避免开销并简化操作。

docker 在windows 环境搭建

docker 在windows 环境搭建

1.官网下载windows docker的安装包

2.执行DockerToolbox-1.11.2.exe 文件,安装docker(按照提示安装即可)

3.安装完成。

4.运行start.sh文件启动docker

注意:安装docker之前要把电脑的虚拟化打开(进入BIOS).

下载地址:https://github.com/docker/toolbox/releases

Windows10:https://download.docker.com/win/stable/InstallDocker.msi  

 

 

配置代理.

利用 docker-mechine ssh default 虚拟机上

sudo –i su root

/var/lib/boot2docke r修改 profile 文件.

export "HTTP_PROXY=192.168.15.220:808"

export "HTTPS_PROXY=192.168.15.220:808"

export "NO_PROXY=“

重启docker  

/etc/init.d/docker restart

 

配置私有镜像仓库.

--registry-mirror=https://xbplk302.mirror.aliyuncs.com

--insecure-registry docker.demo.com:5000

  

注意:在每次启动docker的时候先启动虚拟机否则配置文件会被覆盖掉

没错,就是这么简单,安装后就和在linux环境中使用没有两样

 

Dockercompose Node.js 重新启动

Dockercompose Node.js 重新启动

为了避免在运行后使用 docker-compose exit 进行 docker 容器构建,我在 docker compose 中添加了“stdin_open: true”,现在工作正常

Docker快速开始-在Windows上使用Docker Desktop

Docker快速开始-在Windows上使用Docker Desktop

https://mengz.me/posts/docker...

在本系列的第一篇-基础概念和安装中,我们介绍了容器的基本概念,以及如何在Ubuntu(Linux)上安装Docker引擎来进行容器化引用的开发.
本篇我们介绍如何在Windows系统上安装和使用Docker,这里主要介绍在Windows 10上安装和使用Docker Desktop,对于Windows 10以下的版本,可以使用Docker Toolbox,这里就不做介绍了.

安装Docker Desktop

Docker Desktop - The fastest way to containerize applications on your desktop, 这是Docker官方的定义,Docker Desktop为Windows和Mac提供了一个桌面化的容器开发环境,在Windows 10上,Docker Desktop使用了Windows的Hyper-V虚拟化技术,因此你需要一台打开了硬件虚化化的电脑并且安装的是Windows 10专业版以上的系统,还需要打开Hyper-V功能,如何在Windows 10上打开Hyper-V,参考这里.

_补充_ : Docker Desktop支持Windows 10 64位: 专业版,企业版,教育版 (Build 15063 或以上).

首先在满足条件的Windows系统上下载Docker Desktop的安装包 - https://hub.docker.com/editio... .安装过程是简单的,直接双击下载的安装,更具提示安装就好了,一开始我们选择使用Linux容器(之后可以其他换到使用Windows容器的方式,会单独写一篇来介绍使用Windows容器).安装过程中安装程序会检查系统是否满足,如果不满足,安装程序会报错并结束安装.

安装完成之后,打开开始菜单,然后选择Docker Desktop启动.

Start-Desktop

查看状态栏上的Docker图标,一开始会显示starting装,等到显示Docker Desktop is running,就可以通过终端(例如 PowerSheel)来使用Docker的相关命令了,下面我们将使用Windows 10的PowerShell作为终端来进行操作.

PowerShell-Version

构建和运行容器

我们将使用一个简单Node应用来示例如何在Windows上构建容器镜像和启动一个容器.首先我们需要将代码库下载到我们的环境中,这里可以使用Git来克隆代码库或者直接下载代码包.

在Windows上,可以使用Git for Windows,也可以使用Windows 10的WSL安装一个Ubuntu子系统,然后在Ubuntu子系统终端里安装Git,并直接使用Git克隆代码,这里我使用的是在Ubuntu子系统终端里克隆代码库到本地目录.

Git-clone

如上图所示,我们把代码克隆到了D:\gitrepos\hellonode\目录,然后切换到PowerShell终端,进入该目录. 用你喜欢的文本编辑器打开hellonode\Dockerfile(推荐时候用VS Code,内容如下

FROM node:12.2-alpine

MAINTAINER Mengz You <mengz.you@outlook.com>

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["npm","start"]

构建镜像

使用这个简单的Dockerfile,用于构建示例的Node应用,在Powershell中执行如下命令

docker image build -t hellnode:local .
docker image ls

如下图所示,将会看到构建的容器镜像

Build-image

运行容器

接着我们使用构建好的镜像来启动一个应用容器,在Powershell中执行如下命令

docker container run --name hellonode -d -p 3000:3000 hellonode:local
docker container ls

Container-run

这样我们就启动了一个容器,并且可以使用docker contianer ls查看当前的容器状态,同时我们也可以使用Docker Desktop的Dashboard来图形化查看容器状态并进行一些操作,要打开Dashboard,点击状态栏的Docker Desktop图标,选择Dashboard打开,如下图所示

Desktop-dashboard

在Dashboard上,我们可以UI操作的方式查看容器相关的信息,例如查看容器的日志,停止/启动/重启容器,还可以进入容器CLI等操作.

在运行容器时,我们使用-p 3000:3000指定了将容器应用的3000端口映射到了本地的3000端口,所以我们可以直接访问本地3000端口来访问应用

Bowser-access

之后,我们可以使用一下命令停止和删除掉容器

docker container stop hellonode
docker contianer rm hellonode

推送镜像到Docker Hub

如何你需要将构建的镜像推送到Docker Hub,首先需要登录你的Docker Hub帐号,点击状态栏的Docker Desktop图标,选择Sign in/Create Docker ID..,打开登录窗口进行登录

Dockerhub

然后我们在PowerShell里执行

docker image tag hellonode:local mengzyou/hellonode:v1.0
docker image push mengzyou/hellonode:v1.0

这样就会将镜像推送到Docker Hub上你的仓库中了.

总结

这里是简单介绍了下如何在Windows 10上使用Docker Desktop来进行容器话应用的开发,Docker Desktop为Windows用户提供了很好的Docker容器化工具,除了可以使用Docker引擎之外,Docker Desktop还提供了Kubenetes功能,可以在Windows上运行一个单机的K8S环境,更多信息可以阅读官方文档.

虽然Docker Desktop为Windows提供了一个可视化的管理工具,不过我还是推荐直接在Linux桌面上直接使用Docker引擎,在Linux环境中,如果你也想要一个UI的管理工具,我推荐使用Portainer - 一个基于Web的容器管理工具.

关于Nodemon不会在Windows Docker环境中重新启动node无法正常启动的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Docker for Windows和Docker在Windows上有什么区别?、docker 在windows 环境搭建、Dockercompose Node.js 重新启动、Docker快速开始-在Windows上使用Docker Desktop的相关信息,请在本站寻找。

本文标签: