【原】docker 部署nodejs

dockerfile如下:

FROM hub.c.163.com/public/nodejs:6.11.0

# Create app directory
RUN mkdir -p /home/Service
WORKDIR /home/Service

# Bundle app source
COPY . /home/Service

EXPOSE 3000
ENTRYPOINT  [ "npm", "start" ]

我们来一句一句的解释

FROM hub.c.163.com/public/nodejs:6.11.0
  FROM是构建镜像的基础源镜像,hub.c.163.com/public/nodejs:6.11.0 这个是镜像的名称,也就是我们一开始从国内服务器上拉下来的那个Image。如果本地没有Docker 会自己pull镜像。

RUN mkdir -p /home/Service
  RUN 用于在Image里创建一个文件夹,将来用于保存我们的代码。

WORKDIR /home/Service
  第二句WORKDIR是将我们创建的文件夹做为工作目录。

COPY . /home/Service
  第一句的COPY是把本机当前目录下的所有文件拷贝到Image的/home/Service文件夹下。

EXPOSE 8888
  由于我们的web app监听的是8888端口,我们把这个端口暴露给主机,这样我就能从外部访问web了。

ENTRYPOINT [ "npm", "start" ]
  运行npm start命令,这个命令会运行 node service.js来,,这里我之前网上看的是用的CMD,但是我用CMD不对,真实原因正在研究中,改成ENTRYPOINT 就好了。

这里的start是在node项目的package.json里定义的,如下:

{
  "name": "demo2",
  "version": "0.0.1",
  "description": "demo2",
  "main": "meadowlark.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start":" node meadowlark.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.15.4",
    "mysql": "^2.14.1"
  }
}

构建Image

docker build -t mynodeapp .

运行镜像

docker run -d -p 8888:8888 ac5
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 0. 前言 docker是什么?docker是用GO语言开发的应用容器引擎,基于容器化,沙箱机制的应用部署技术。可...
    sessionboy阅读 3,891评论 2 49
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,574评论 0 120
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,643评论 15 147
  • 五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了...
    R_X阅读 1,822评论 0 7
  • 【一】 李同学是班级的卫生委员。 班级每周一都会开班会,让各个班干部上去点评一周情况。某次调位李同学坐在我的前面,...
    民谣姑娘阅读 265评论 0 1