docker运行nodejs小程序

这里介绍一下如何在docker运行nodejs应用程序,算是对docker的入门。
这篇博客Node.js简介介绍了nodejs的使用。这里仍然使用server.js作为服务端的程序。server.js如下:

var http = require("http");
   http.createServer(function(request,response) {
        response.writeHead(200,{"Content-Type": "text/plain"});
        response.write("HelloWorld");
        response.end();
  }).listen(8888);

1、下载包含nodejs服务的镜像:

docker pull node

2、编写Dockerfile

#说明使用的镜像
FROM node

#将当前目前复制到容器的/srv/hello,当前目录含有server.js
ADD . /srv/hello

#为后续的RUN,CMD等指令配置工作目录,这里没有
WORKDIR /srv/hello

#暴露的端口号,nodejs使用这个端口对外提供服务。
EXPOSE 8888

3、使用docker bulid命令来创建镜像,别忘了后面有一个点,my_node_hello是镜像的名字。

docker build -t my_node_hello .

4、运行容器,-P,大写的P,是指让主机自动分配一个端口和容器的8888映射。

docker run -it -P --rm my_node_hello node server.js

5、查看运行的容器,主要是看看主机用的哪个端口

docker ps -a

输出:
CONTAINER ID        IMAGE                  COMMAND             CREATED             STATUS              PORTS                     NAMES
6f81a0a890b2        my_node_hello:latest   "node server.js"    6 seconds ago       Up 6 seconds        0.0.0.0:32768->8888/tcp   lonely_newton 

我们看到主机使用的是32768端口,那么我们就用这个端口访问

192.168.1.34:32768

网页显示如下:
这里写图片描述

就这么多,过几天继续研究

在对容器进行更新时,经常会出现域名无法解析的情况,这个时候,我们可以在主机中修改/etc/default/docker文件,将下面一行的#去掉。重新启动docker,

#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

sudo service docker restart

有些镜像可能仍然无法解析域名,删了重新下载?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值