当前位置: 首页 > 后端技术 > Node.js

Docker系列-03-入门&节点服务

时间:2023-04-03 20:29:56 Node.js

本文档对应代码:https://github.com/LiangJunro...Docker系列文档:https://github.com/LiangJunro...1.上一篇回顾一下前面的讲解,想必你对Docker的一些相关术语有了一定的了解。说到这里:Host:你电脑对应的系统机器Dockfile:可以用来制作镜像的文件:类似于CD,可以用来制作容器,相当于ISO安装操作系统时使用的文件容器:轻量级虚拟技术,相当于一个由IOS文件和一千个哈姆雷特组成的系统。大家有不同的看法,欢迎吐槽2.一个Node.jsDemo嗯,既然要把Node.js塞进Docker,就需要一个Node服务,所以jsliang拿了一个自己写的基础Node.js+TypeScript服务。它的目录结构如下:docker-node>src.eslintrc.js.gitignorepackage-lock.jsonpackage.jsonREADME.mdtsconfig.json启动这个demo只需要2步:安装包:npmi启动服务:npmrunrobotwaituntileveryminuteAtthe0thsecond,terminalwillprint:ThisDemoissimplytousethecommandts-node./src/index.tsrobot当通过commander.js运行npmrunrobot时。那么/src/index.ts中的任务主要是://...代码省略console.log('您好,您已进入程序');//printschedule.scheduleJob('0*****',()=>{//设置定时任务const{年月日时分秒}=getDateDetail(newDate());console.log(`${year}/${month}/${day}${hour}:${minute}:${second}`);});//...代码省略表示打印一行文本,然后在每分钟的第0秒打印年/月/日:分钟:秒。感兴趣的可以先驻足观看demo,不感兴趣的可以继续阅读。3.改造Node.js服务,添加Docker必备文件。让我们看看如何将这个Node.js服务插入到Docker中。目标:在Docker中搭建一个Node.js环境,启动服务docker-node>src+.dockerignore.eslintrc.js.gitignore+Dockerfilepackage-lock.jsonpackage.jsonREADME.mdtsconfig.json我们添加两个文件,分别是.dockerignore和Dockerfile,然后把里面的内容塞进去:.dockerignore:node_modules.dockerignoreDockerfile*-debug.log*-error.log.git.hg.svn.vscode.dockerignore和.gitignore一样,起到忽略文件/文件夹的作用,所以Docker在运行的时候Dockerfile,其中相应的文件/文件夹将被选择性地忽略。Dockerfile:#这个镜像是从Nodev14版本复制过来的FROMnode:14#指定执行CMD的目录,即先cd到目录WORKDIR/usr/src/app#复制宿主机的文件(当前运行的终端)复制到.app目录下的容器中。.#安装npm包RUNnpminstall#暴露这个镜像的80端口EXPOSE80#启动节点服务CMD["npm","run","robot"];Dockerfile会告诉Docker:你只需要这样,然后这个,然后这个……详细就不抖了,上面注释的很清楚。那么我们只需要在Show和type命令下进行操作即可!4、Docker部署Node.js服务创建镜像(Image):dockerimagebuild./-tdocker-node:1.0.0dockerimagebuild:创建镜像./:基于当前目录-t:重新分配一个容器的伪输入端,通常使用docker-node:1.0.0同时使用-i:对应的镜像名称和TAG来创建容器(Container):dockercontainercreate-p3333:80docker-node:1.0.0dockercontainercreate:createacontainer-p3333:80:端口,3333:80即宿主机:容器docker-node:1.0.0:对应的镜像及其TAG启动容器(Container):dockercontainerstartdd420fc4267ad3bdb9eadfdbf37d89e2592dbc9d030a501b96fe10b07ac565ffdocker集装箱开始:启动启动启动启动启动启动启动启动容器启动启动容器启动容器启动启动启动启动容器容器:容器ID,可以通过dockerps-a找到容器(Container):dockerexec-itdd420fc4267abashdd420fc4267a:容器ID,可以通过dockerps-a查看README.md文件:cat-nREADME.mdcat:cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备up-n:从1开始对所有输出行进行编号。5.小结通过上面的解释,你一定对一些事情有了一个大概的了解Docker的说明。在下一篇文章中,我们将为新手讲解Docker的必要说明以及如何使Hosts隔离和修复敬请期待修改容器的时间:05-不折腾前端的Troubleshooting&Docker命令,和咸鱼有什么区别!觉得文章不错的朋友欢迎点赞/star。如需联系jsliang:Github个人联系方式保存在Github主页,欢迎一起折腾~努力成为一个充满探索欲、喜欢折腾、乐于拓展自己的终身学习横杠程序员知识。jsliang的文档库由JunrongLiang根据CreativeCommonsAttribution-NonCommercial-ShareAlike4.0InternationalLicense授权。
基于https://github.com/LiangJunrong/document-library上的作品。
非本许可协议授权的使用权可从https://creativecommons.org/licenses/by-nc-sa/2.5/cn/获取。