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

95次阅读
没有评论

共计 1644 个字符,预计需要花费 5 分钟才能阅读完成。

本文丸趣 TV 小编为大家详细介绍“Docker 中怎么编写 dockerfile 启动 node.js 应用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Docker 中怎么编写 dockerfile 启动 node.js 应用”文章能帮助大家解决疑惑,下面跟着丸趣 TV 小编的思路慢慢深入,一起来学习新知识吧。

编写 dockerfile

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

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

在项目目录下新建  dockerfile  文件

from node:10.15
maintainer sunhengzhe@foxmail.com
copy . /app/
workdir /app
run npm install pm2 -g
expose 8003
cmd [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 是默认的容器主进程的启动命令

构建镜像

在项目目录下执行

docker build -t express-app:v1 .

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

docker images

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

运行容器

docker run -d -p 8003:3000 --name= express-app  express-app:v1

docker run  是  docker create  和  docker start  两个命令的简写。

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

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

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

执行

docker ps

正常展示如下

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

进入容器

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

docker exec -it express-app bash

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

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

关闭操作

停止容器

docker stop express-app

删除容器

docker rm express-app

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

删除镜像

docker rmi express-app:v1

读到这里,这篇“Docker 中怎么编写 dockerfile 启动 node.js 应用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计1644字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)