docker之mac下部署nodejs项目
mac下docker安装
1.官网下载
2. 安装教程可参照官方安装教程
3.安装成功可以看到此界面:
4.检验安装结果。
docker -v
结果为:
初始化一个Node.js项目
- 初始化node.js
npm init
2.创建service文件即程序入口
const Koa = require('koa');
const app = new Koa();
app.use(async ctx => {
ctx.body = 'hello docker';
});
app.listen(3000);
3.创建Dockerfile文件·
# 制定node镜像版本
FROM node:10
MAINTAINER vincent
# 将根目录下的文件都copy到container(运行此镜像的容器)文件系统的app文件夹下
ADD . /app/
# cd到app文件夹下
WORKDIR /app
# 对外暴露的端口号
EXPOSE 3000
RUN npm install
# 容器启动时执行的命令,类似npm run start
CMD ["npm","start"]
4.创建build忽略文件配置.dockerignore文件
logs
node_modules
5.整体项目结构如下:
构建项目镜像
1.使用docker命令的build命令,其他命令可以查看Docker命令大全
docker build -t docker_demo .
注:请注意标签名后面的点,点其实代表的是当前路径
2.构建过程如下:
注:由于我构建过,所以直接使用缓存,即Using cache。
3. 通过images命令查看当前镜像
docker images
如图:
运行nodejs项目镜像
1.使用docker的run命令:
docker run -d -p 8081:3000 docker_demo
如图:
2.查看运行中的docker容器:
docker ps
如图:
3.浏览器测试一下
注:虽然我们项目中端口是3000,但是在run镜像时,我们将主机端口8081映射到了3000上,所以外部直接访问8081就可以访问到。
4. 查看运行的容器的日志
docker logs -f [CONTAINER ID]
就可以看到项目运行的日志。
5. 停止运行的容器
docker stop [CONTAINER ID]/[正在运行的容器ID]
将本地镜像推送到docker hub上
1.创建一个docker hub账户
打开官方网站注册一个属于自己的账号
2.注册之后可以在命令行中登陆自己的账户
docker login
如图:
输入自己的ID和密码即可登陆成功
3.如果你使用的是vs Code开发工具,则可以直接在扩展工具中搜索docker插件,安装成功后如图:
注:首次使用时,在点击Docker Hub时会提示你登陆你的Hub账号,跟命令行登陆输入的东西一样。登陆成功后就很方便的查看你Hub仓库的镜像,以及你本地的镜像和正在运行的容器了。
4.使用tag命令添加标签
docker tag docker_demo vincentwsc/docker_demo
5.使用push命令将镜像推送到Hub仓库中
docker push vincentwsc/docker_demo
6.登陆到你的Hub页面就可以看到你刚刚上传的镜像了。
7.使用pull命令从Hub拉取项目镜像
docker pull vincentwsc/docker
就可以直接运行该项目了。