1.创建一个简单的应用程序在安装好Docker后,现在让我们来创建一个简单的应用程序 。
我们先创建一个简单的Node.js Web应用,然后将它打包到镜像中 。该应用可以接受HTTP请求并返回主机名 。虽然应用进程和其他进程一样都是运行在宿主机上,但是在容器中运行的应用获取到的是它所在容器的主机名,而不是宿主机名 。
这个Node.js应用只有一个App.js一个文件 。
在~目录下执行如下命令:
mkdir test01cd test01vim app.js
复制如下代码到app.js文件中:
const http = require('http');const os = require('os');console.log("开始运行...");var handler = function(request, response) {console.log("收到来自 " + request.connection.remoteAddress + "的消息");response.writeHead(200);response.end("已发送消息至: " + os.hostname() + "n");};var www = http.createServer(handler);www.listen(8080);
文章插图
该程序会启动一个监听8080端口的HTTP服务 。当收到来自外界的消息后,请求处理器会记录并输出请求方的IP地址,然后给每一个请求返回状态码200以及一段包含主机名的文本 。
到这一步后,我们似乎可以下载并安装Node.js环境来直接测试这个应用程序了,但这就背离了本文的初衷了 。因为我们要学习的是使用Docker来将这个应用打包到容器镜像中,然后让它不需要下载和安装就可以在任何主机上执行,当然如果想运行这个镜像,主机还是需要准备好最基本的Docker环境 。
2.创建镜像的Dockerfile要想将应用程序打包的镜像里,首先得创建一个叫做Dockerfile的文件 。
在~/test01目录下执行如下命令:
touch Dockerfile
这个文件就是一个指令清单,指示Docker在构建镜像时需要执行的命令 。Dockerfile需要和app.js文件在同一个目录下,而且应该包含如下命令:FROM node:7ADD app.js /app.jsENTRYPOINT ["node", "app.js"]
文章插图
FROM关键字所在的行定义了镜像构建过程所使用的基础镜像 。此处我们使用node镜像的tag7版本 。
第二行的作用是将app.js文件从本地目录添加到镜像的根目录下,并保持相同的文件名 。最后一行的作用是指定运行镜像的时候应该执行的命令 。本例中,这个命令是
推荐阅读
- MySQL多表查询讲解
- 2020年4月29日从中国科学院紫金山天文台获悉
- 两只蚂蚁的爱情?两只蚂蚁的故事
- 职业规划|建筑工程业从业者,如何预防中年危机?需要做职业规划吗?
- 为什么加入信托行业?从整个信托行业来看,现阶段
- 2021年社保什么时间开始交?
- 南茶北藏仓储,嘉德四季第28期拍卖会14日在京开始预展
- 土地里钻的动物有哪些 什么动物从土里钻出来
- 从零开始学习OpenWrt:刷机 + 使用 + 编译教程
- 从最小的行星到最大的恒星 目前发现最大的恒星是什么星