Docker怎么编写dockerfile启动node.js应用(docker,dockerfile,node.js,编程语言)

时间:2024-05-06 10:35:14 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

编写 dockerfile

express自动创建的目录为例,目录结构如下:

├──/bin│└──www├──/node_modules├──/public├──/routes├──/views├──package-lock.json├──package.json├──ecosystem.config.js├──app.js└──dockerfile

在项目目录下新建dockerfile文件

fromnode:10.15maintainersunhengzhe@foxmail.comcopy./app/workdir/apprunnpminstallpm2-gexpose8003cmd["pm2-runtime","ecosystem.config.js"]
  • from 指定基础镜像为 node 的 10.15 版本(node 官方版本可)

  • maintainer 说明镜像的维护者

  • copy 命令将宿主机的文件拷贝到镜像中,格式为 copy [--chown=<user>:<group>] <源路径>... <目标路径>,这里将项目目录下的所有文件都拷贝到镜像中的 /app 目录下。如果目标路径不存在,docker 将自动创建。

  • workdir 用来指定工作目录,即是 cmd 执行所在的目录。

  • run 命令用来执行 shell 命令,这里用来安装 pm2

  • expose 命令用来 声明 运行时容器提供服务端口,但要注意运行时并不会开启这个端口的服务。这个命令主要是帮助使用者理解这个镜像服务的守护端口,以方便配置映射;另外在使用随机端口映射时,会自动随机映射 expose 的端口

  • cmd 是默认的容器主进程的启动命令

构建镜像

在项目目录下执行

dockerbuild-texpress-app:v1.

如果构建成功,查看镜像列表

dockerimages

应该会输出镜像express-app:v1

Docker怎么编写dockerfile启动node.js应用

运行容器

dockerrun-d-p8003:3000--name="express-app"express-app:v1

docker rundocker createdocker start两个命令的简写。

  • -d--detach,代表让容器后台运行。

  • -p指定宿主机和容器的端口映射,左边为宿主机的端口,右边为容器的端口,也就是说访问宿主机的 8003 端口,会映射到容器内的 3000 端口。

  • --name设置容器别名,如果不指定,docker 会随机生成一个名字,比如tender_swirles之类的。

执行

dockerps

正常展示如下

Docker怎么编写dockerfile启动node.js应用

添加-a参数可以查看所有已启动容器。

进入容器

如果要进入容器进行操作,执行下面命令

dockerexec-itexpress-appbash

Docker怎么编写dockerfile启动node.js应用

-i-t一般结合使用,-i启动交互模式,-t指定需要分配终端,可以自行尝试不传其中一个的效果。

exec类似的还有attach命令,命令为docker attach express-app,但从这个 stdin 中 exit,会导致容器的停止,所以推荐使用exec命令。

关闭操作

停止容器

dockerstopexpress-app

删除容器

dockerrmexpress-app

如果删除时容器还在运行,需要加上-f参数

删除镜像

dockerrmiexpress-app:v1
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Docker怎么编写dockerfile启动node.js应用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Docker如何部署Node.js下一篇:

8 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18