Docker使用编写dockerfile启动node.js应用
发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,编写 Dockerfile以 express 自动创建的目录为例,目录结构如下:├── /bin│ └── www├── /node_modules├── /public├── /routes├──
千家信息网最后更新 2025年01月27日Docker使用编写dockerfile启动node.js应用
编写 Dockerfile
以 express
自动创建的目录为例,目录结构如下:
├── /bin│ └── www├── /node_modules├── /public├── /routes├── /views├── package-lock.json├── package.json├── ecosystem.config.js├── app.js└── Dockerfile
在项目目录下新建 Dockerfile
文件
FROM node:10.15MAINTAINER sunhengzhe@foxmail.comCOPY . /app/WORKDIR /appRUN npm install pm2 -gEXPOSE 8003CMD ["pm2-runtime", "ecosystem.config.js"]
- FROM 指定基础镜像为 node 的 10.15 版本(node 官方版本可在此查看)
- MAINTAINER 说明镜像的维护者
- COPY 命令将宿主机的文件拷贝到镜像中,格式为 COPY [--chown=
: ] <源路径>... <目标路径>,这里将项目目录下的所有文件都拷贝到镜像中的 /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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
容器
命令
端口
镜像
目录
运行
宿主
宿主机
文件
项目
服务
参数
拷贝
版本
帮助
成功
两个
也就是
也就是说
代表
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
珠海电商软件开发收费
字节型数据库
网络技术学习的技巧
保定服务器租用常用解决方案
德州软件开发公司
软件开发前期人数
codm服务器内部
软件开发 犯罪
魔兽世界单机版数据库在哪
网络技术期末知识点总结
杭州软件开发培训
辽宁网络安全宣传周在沈阳
传奇服务器改装备名字
服务器机房安全管理
计算机网络技术跟影视
db2 查看数据库空间
东营戴尔服务器店面
学习软件开发需要具备什么素质
杨浦区网络技术咨询
怎么测试代理服务器
Win10服务器版本驱动安装
奇游怎么选服务器啊
java软件开发培训成都
软件开发测试职高
数据库中技术参数是指什么
云服务器配置参数
网络安全检查结果统计表
从数据库回到map
微信和网络安全文章
药物性肝损伤数据库