背景
流程
- 先连上电脑,建立个nodeapp文件夹
- 安装nvm,输入:
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
yum -y install git
git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
- 然后执行安装
./install.sh
- 用nvm安装Node
nvm install stable
node -v
npm i cnpm -g
npm i nrm -g
npm install express-generator -g
express app
vi Dockerfile
FROM node
COPY ./app /app
WORKDIR /app
RUN npm install
EXPOSE 3000
- FROM node 表示在node镜像基础上制作。
- COPY 就是把当前dockerfile文件下的app目录拷贝到镜像根目录的app下。
- WORKDIR 就是指定工作目录
- RUN 就是执行脚本
- EXPOSE 3000 就是暴露3000接口给外界使用。
- 然后开始构建
docker build -t express-demo .
- 其中 -t 后的express-demo代表镜像名
- 点代表当前目录,需要有dockerfile文件的目录。
- 等构建完成,就可以看见本地有个叫express-demo的镜像了。
- 如果构建失败可以指定网络 --network host来构建。
- 然后进去运行它,输入npm start
docker image ls
docker run -it -p 8080:3000 expressdemo /bin/bash
- 开另一个窗口就可以访问宿主8080端口,会看见是个express网页。
- 另外跳进去输npm start比较累,可以构建时候加入CMD npm start
- CMD和RUN的区别就是CMD会在启动镜像时运行,RUN会构建时运行。