我是靠谱客的博主 直率摩托,这篇文章主要介绍简单的nodejs应用打包成docker镜像编写一个简单的nodejs应用创建一个名称为 Dockerfile 的文件构建你的镜像运行镜像,现在分享给大家,希望可以做个参考。
编写一个简单的nodejs应用
首先,创建一个新文件夹以便于容纳需要的所有文件,并且在此其中创建一个 package.json 文件,描述你应用程序以及需要的依赖:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14{ "name": "docker_web_app", "version": "1.0.0", "description": "Node.js on Docker", "author": "Joy", "main": "app.js", "scripts": { "start": "node app.js" }, "dependencies": { "express": "^4.17.1" } }
配合着你的 package.json 请运行 npm install。如果你使用的 npm 是版本 5 或者之后的版本,这会自动生成一个 package-lock.json 文件,它将一起被拷贝进入你的 Docker 镜像中。
然后,创建一个 app.js 文件,使用 Express.js 框架定义一个 Web 应用:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13// 引入Express模块 const express = require('express'); const PORT = 3000; const HOST = '0.0.0.0'; // 实例化 const app = express(); app.get('/', (req, res) => { res.send('Hello World'); }); // 监听 app.listen(PORT, HOST); console.log(`Running on http://${HOST}:${PORT}`);
创建一个名称为 Dockerfile
的文件
你的 Dockerfile 现在看上去是这个样子:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# from 构建镜像的基础源镜像 该image镜像文件继承官方的node image FROM node:10.0 # 在容器中创建一个目录 RUN mkdir -p /usr/src/app/ # 定位到容器的工作目录 WORKDIR /usr/src/app/ # RUN/COPY是分层的,package.json 提前,只要没修改就不会重新安装包 COPY package.json /usr/src/app/package.json RUN cd /usr/src/app/ RUN npm i # 把当前目录下所有的文件拷贝到 Image 的 /usr/src/app/目录下 COPY . /usr/src/app/ EXPOSE 3000 CMD npm start
或者这个样子:(上面的不行就用下面的)
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13# from 构建镜像的基础源镜像 该image镜像文件继承官方的node image FROM node:10.0 # 在容器中创建一个工作目录 WORKDIR /usr/src/app # RUN/COPY是分层的,package.json 提前,只要没修改就不会重新安装包 COPY package*.json ./ RUN npm install -g cnpm --registry=https://registry.npm.taobao.org RUN cnpm install # 捆绑应用程序源 COPY . . EXPOSE 3000 CMD ["node", "app.js"]
构建你的镜像
进入到 Dockerfile
所在的那个目录中,运行以下命令构建 Docker 镜像。
注意这里是有个点的,点标明是在根据当前目录构建
复制代码
1
2$ docker build . -t demo
Docker 现在将给出你的镜像列表:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15$ docker images # Example REPOSITORY TAG ID CREATED node 10 1934b0b038d1 5 days ago demo latest d64d3505b0d2 1 minute ago
运行镜像
使用 -d
模式运行镜像将以分离模式运行 Docker 容器,使得容器在后台自助运行。开关符 -p
在容器中把一个公共端口导向到私有的端口,请用以下命令运行你之前构建的镜像:
复制代码
1
2$ docker run -d --name demo -p 3000:3000 demo
如果你需要进入容器中,请运行 exec
命令:
复制代码
1
2$ docker exec -it <容器名/容器Id> /bin/bash
如果你需要设置容器随docker启动而启动
复制代码
1
2$ docker container update --restart=always <容器名/容器Id>
最后
以上就是直率摩托最近收集整理的关于简单的nodejs应用打包成docker镜像编写一个简单的nodejs应用创建一个名称为 Dockerfile 的文件构建你的镜像运行镜像的全部内容,更多相关简单的nodejs应用打包成docker镜像编写一个简单的nodejs应用创建一个名称为内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复