Docker教程二之基于Centos7的NodeJS环境镜像
来源:互联网 发布:淘宝陆战吉姆 编辑:程序博客网 时间:2024/05/16 10:27
上一章我完成了第一个系统镜像,这一章我需要来编写一个基于CentOS 7的NodeJs环境镜像
有NodeJS 基础的都找到NodeJS 是运行在服务器的web轻量级框架,并发高,运转快,对于开发者而言,简单,方便,这里就不说明NodeJs的基础了,自行百度即可
直接上干货
之前在 github 上也找到一些镜像,但是使用存在一些问题,然后对其整理得到下面的 dockerfile 内容
坑:
1,要在Docker+NodeJs 环境中运行web服务,SELINUX 得进行关闭,当然,有自己决定,我是关闭的,找了找相关资料,SELINUX 其实并没什么大用,反而会给一些软件造成访问困扰
好了,直接上dockerfile 文件内容
===================dockerfile==========================
From centos:7
MAINTAINER xxxxxxx xxxx@xxx.xx
ADD node-v8.9.0-linux-x64.tar.xz /usr/local
RUN mv /usr/local/node-v8.9.0-linux-x64 /usr/local/node
ENV PATH $PATH:/usr/local/node/bin
WORKDIR /app
EXPOSE 80 443 43554 3000 8888
CMD ["npm" , "start"]
===================dockerfile==========================
解释:
From 引用CentOS 7 的基础镜像(上一章编译而来)
ADD node-v8.9.0-linux-x64.tar.xz /usr/local 添加并解压文件到指定目录
RUN mv /usr/local/node-v8.9.0-linux-x64 /usr/local/node 执行修改名称命令,RUN实在dockerfile 中用于执行某条脚本的命令
ENV PATH $PATH:/usr/local/node/bin 设置NodeJs的环境变量,ENV 专用来设置环境变量的
CMD ["/bin/bash"] 这句话是用来执行命令的,比如我要做的某件事,这里要注意,CMD是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD,所以使用时注意
WORKDIR /app 创建文件夹并且进入到该目录下
EXPOSE 80 443 43554 3000 8888 开放端口,按个人要求,NodeJs 中 express 框架默认端口一般为 3000,我同时开通了8888 端口,有程序决定
CMD ["npm" , "start"] 执行启动,这里说明下,通过上面WORKDIR 命令,我已经进入/app 目录文件夹下,所以我们在这里可以执行命令,因为 /app 目录为我的程序存放目录,再一个问题,[]中写入2个命令 ,因为在执行过程中,是以”/bin/sh -c”的方法执行的,所以最好写成 一次一个命令的方式
编译: docker build --rm -t nodejs:8.9 .
最后的启动
docker run -d -p 8890:8888 -v /root/blog:/app --restart=always --name blog2 nodejs:8.9
对于dockerfile 中的指令, 具体再上面的教程基础中去查看吧
NodeJS 下载地址:https://npm.taobao.org/mirrors/node/v8.9.0/node-v8.9.0-linux-x64.tar.xz
可以看我的码市:去码市看看
第二章,到此结束
- Docker教程二之基于Centos7的NodeJS环境镜像
- Docker教程三之基于Centos7的Nginx环境镜像以及简单负载均衡
- 制作基于centos7的mysql的docker镜像
- docker镜像加速之CentOS7
- Docker实战:基于centos7镜像创建可以ssh链接的Docker容器
- 基于CentOS7将JavaWeb项目生成docker镜像
- 基于CentOS7将Java应用生成docker镜像
- docker创建centos7镜像(scrapy环境)
- Docker教程 -- 镜像
- Docker学习系列从零开始之基于SSH镜像制作mysql的镜像【六】
- Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像
- 制作mesos的docker镜像(centos7.2)
- Docker实战(二):制作自己的Docker镜像
- Docker实战(二):制作自己的Docker镜像
- Docker(二)-Docker化-构建Springboot的镜像
- Docker的使用--第一个Docker镜像(二)
- Docker实战(二):制作自己的Docker镜像
- 【二十一】Docker-创建自己的Docker镜像
- Kinect V2开发(5)绘制骨架图
- 【React Native】那些年RN上跳过的坑
- Cas单点登录(6)Cas Client配置
- kudu性能调优
- Spring4.3.12源码阅读系列:1-环境搭建
- Docker教程二之基于Centos7的NodeJS环境镜像
- jquery 02筛选选择器-表单属性jquery dom
- WINCE CPU内存的占用率计算
- 数字验证码源代码
- 阿里云新优惠活动,幸运券免费领取
- Linux命令学习笔记
- 不同函数之间的跳转setjmp和longjmp
- android 使listview显示最底部一条
- 通过代码调整系统音量,监听音量实体按键事件