初始化⼀个NodeJs程序

以下操作必须已经安装了NodeJS。

⾸先创建⼀个空⽂件夹。并创建以下⽂件:

server.js

package.json

Dockerfile

.dockerignore

然后在server.js写⼊

const koa = require('koa');
const app = new koa(); app.use(async ctx =>{
ctx.body = "Hello docker";
});
app.listen(3000);

在package.json中写⼊

{
"name":"docker_demo",
"version":"0.1.0",
"private:true",
"script":{
"start":"node server.js"
},
"dependencies":{
"koa":"^2.5.0"
}
}
npm start

创建dockerfile文件

Dockerfile是由⼀系列命令和参数构成的脚本,⼀个Dockerfile⾥⾯包含了构建整个image的完整命

令。Docker通过docker build执⾏Dockerfile中的⼀系列命令⾃动构建image. 在.dockerignore⽂件⾥

⾯写⼊代码。表示过滤该类型的⽂件。类似git的.gitignore

.dockerignore

# Logs
logs
*.log
npm-debug.log*
# Runtime data
pids
*.pid
*.seed
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creatingplugins#storing-task-files)
.grunt
# node-waf configuration
.lock-wscript
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules
jspm_packages
# Optional npm cache directory
.npm
# Optional REPL history
.node_repl_history
.idea
.node_modules
node_modules
.vscode
[root@Sandbox-N ~]# docker build -t docker_demo .
Sending build context to Docker daemon 39.94kB
Step 1/7 : FROM node:8.9-alpine
---> 406f227b21f5
Step 2/7 : MAINTAINER robin
---> Using cache
---> 78d6cdbcfee2
Step 3/7 : ADD . /app/
---> 2cb30678612d
Step 4/7 : WORKDIR /app
Removing intermediate container e51377081039
---> c2b7d0f37d2d
Step 5/7 : RUN npm install
---> Running in da0c3946ca8d
npm notice created a lockfile as package-lock.json. You should commit
this file.
added 38 packages in 3.323s
Removing intermediate container da0c3946ca8d
---> eecee87f10e2
Step 6/7 : EXPOSE 3000
---> Running in f3973cc168a4
Removing intermediate container f3973cc168a4
---> 2671a4c6deb4
Step 7/7 : CMD ["npm", "start"]
---> Running in dec529f754aa
Removing intermediate container dec529f754aa
---> 6ec73793d353
Successfully built 6ec73793d353
Successfully tagged docker_demo:lates

等待镜像构造完成。然后使⽤ images命令查看镜像

此时可以看到images已经构造完成。现在开始启动images,并测试。

# 启动镜像 -d表示后台执⾏,-p 9000:3000表示指定本地的9000端⼝隐射到容器内的3000端,
docker_demo为镜像名称
docker run -d -p 9000:3000 docker_demo
#查看容器
docker ps

如果此时本地⽆法打开。可以使⽤log命令查看⽇志。根据⽇志修改对应出现的对⽅

最新文章

  1. android 判断sd的状态,所有文件,剩余空间的大小
  2. 关于C# DataTable 的一些操作
  3. Nexus Repository Manager 3.0 发布
  4. 关于tableView的优化
  5. Hook入门
  6. STL学习二:Vector容器
  7. setTimeout中0毫秒延时
  8. MySQL之终端(Terminal)管理MySQL(转)
  9. C# & WPF 随手小记之一 ——初探async await 实现多线程处理
  10. linux脚本定期执行
  11. Java web开发中页面跳转小技巧——跳转后新页面在新窗口打开
  12. 暑假练习赛 003 F Mishka and trip
  13. copy与mutableCopy的区别总结
  14. python 循环 while
  15. .NET Core开发日志——HttpClientFactory
  16. javascript DOM基础操作
  17. e779. 获得JList中的已选项
  18. iOS开发-数据存储NSCoder
  19. 使用tcmalloc替换系统的malloc
  20. Cognos 报表在列表上面显示汇总

热门文章

  1. MySQL8自增主键变化
  2. python-django搭建页面步骤
  3. 【ASP.NET Core】自己编程来生成自签名的服务器证书
  4. 项目完成 - 基于Django3.x版本 - 开发部署小结
  5. 从零开始搭建高可用的k8s集群
  6. 程序员不得不知道的 API 接口常识
  7. 原来 Linux 日志文件系统是这样工作的~
  8. Idea之常用插件
  9. Json序列化与反序列化导致多线程运行速度和单线程运行速度一致问题
  10. Ubuntu16.04编译OpenJDK7u40