作完看见网上不少都都不熟nodejs到docker上运行:node
根据我的总结包含两种:一种是经过dockerFile直接打包成镜像进行运行;另外一种则是挂在到docker镜像上进行运行。git
今天讲解的是经过挂在nodejs项目到镜像上进行安装,首先我经过http://blog.shiqichan.com/Dockerizing-a-Node-js-Web-Application/ 该文进行nodejs镜像的下载:github
PS C:\Users\hxf> docker run -it --rm node node --version
Unable to find image 'node:latest' locally
latest: Pulling from library/nodeweb
357ea8c3d80b: Pull complete
52befadefd24: Pull complete
3c0732d5313c: Pull complete
ceb711c7e301: Pull complete
868b1d0e2aad: Pull complete
61d10f626f84: Pull complete
Digest: sha256:12899eea666e85f23e9850bd3c309b1ee28dd0869f554a7a6895fc962d9094a3
Status: Downloaded newer image for node:latest
v6.4.0
PS C:\Users\hxf> docker run -it --rm node node --version
v6.4.0
PS C:\Users\hxf> git clone https://github.com/MarshalW/ProtoWebApp.git
Cloning into 'ProtoWebApp'...
remote: Counting objects: 44, done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 44 (delta 17), reused 44 (delta 17), pack-reused 0
Unpacking objects: 100% (44/44), done.
Checking connectivity... done.docker
进行到这一步,已经有nodejs镜像和nodejs项目,接下来就是进行nodejs的挂在和运行;npm
PS C:\Users\hxf\ProtoWebApp> docker run --rm -it -p 3000:3000 --name ProtoWebApp -v "$(pwd)":/webapp -w /webapp node npm start
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error parsing reference: ":/webapp" is not a valid repository/tag.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.windows
进行这一步报错,首先解释一下参数,app
--rm 是指运行时加载到镜像,中止后,镜像中删除该应用webapp
-p 是制定代理端口,3d
--name 制定应用id
-v 挂载本地目录,冒号后面是挂在镜像中的位置
-w 是工做目录
后面跟着的是运行命令。
对于错误缘由,则是docker不能识别挂在的镜像,挂在的镜像必须是绝对路径,可是对于不识别的缘由,寻找了一会,这是由于windows中的硬盘标识符须要共享出来,到docker setting中,把包含你项目运行的表示服共享出来,这样docker就能够认识了,此处有官方文档知道能够看看https://docs.docker.com/docker-for-windows/;
经过设置后再次运行该命令不报错,正常运行,并能够访问本地3000
出现须要的画面。