注意:Win7 与 Win10 的版本存在差异,Win7 版本使用 Docker Quickstart Terminal 进入控制台,Win10下面直接用管理员权限打开控制台或者 PowerShell 即可;另外 Win7 下面只能访问 C盘,/app 代表 C:\app,Win10 下可以直接使用 D:\app 这种路径。
第一步:创建一个 dockerfile 文件,放到目录 C:\Users\havent.liu\my-app
FROM node:6-alpine
MAINTAINER havent@qq.com
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
CMD ["npm", "start"]
EXPOSE 8000
第二步:创建一个 package.json 文件,放到目录 C:\Users\havent.liu\my-app
{
"name": "MY00-COM",
"version": "1.0.0",
"description": "A new website",
"author": "HAVENT@QQ.COM",
"scripts": {
"start": "nodemon index.js"
},
"dependencies": {
"express": "^4.13.3",
"body-parser": "^1.17.2",
"http-proxy-middleware": "^0.17.4"
},
"devDependencies": {
"nodemon": "~1.8.1"
}
}
如果还有其他代码文件,也一并放到目录 C:\Users\havent.liu\my-app
第三步:编译生成镜像
# Win7 下面执行代码 ( Docker Quickstart Terminal )
docker build -t havent/node6:base my-app
# Win10 下面执行代码 ( PowerShell )
docker build -t havent/node6:base C:\Users\havent.liu\my-app
第四步:发布到 docker hub ( Win10 环境下启动 docker for windows 就已经登录好了,无需再次登录 )
----------------------------------------
$ docker login
$ Username: havent
$ Password:******
...
$ Login Succeeded
$ docker push havent/node6
附一:根据镜像,启动一个容器副本
# 创建一个名字为 HH-1 的容器副本,并将外部端口 8001 映射到容器内部端口 8000 上
docker run --name HH-1 -p 8001:8000 havent/node6:base
附二:查询所有镜像
docker images
附三:查询所有容器
docker ps -a
附四:停止所有容器
docker stop $(docker ps -q)
附五:删除所有容器 ( 注:请先停止所有容器再执行删除 )
docker rm $(docker ps -aq)