把Express项目Docker化
创建 Dockerfile 文件
在 express
项目的目录下, 新建 dockerfile
文件, 命名为 Dockerfile
1 | touch Dockerfile |
编辑Dockerfile
文件:
1 | # 从哪个镜像进行构建, 由于我的服务器上docker拉取的node镜像是latest版本的, 这里指定node:latest |
创建.dockerignore 文件
在Dockerfile
的同一个文件夹中创建一个.dockerignore
文件, 添加以下内容:
1 | node_modules |
构建镜像
进入Dockerfile
所在的目录, 运行以下命令构建Docker
镜像.
1 | docker build . -t <your username>/node-web-app |
运行镜像
用以下命令运行镜像
1 | docker run -p 3001:3001 -d <your username>/node-web-app |
-d
: 指容器在后台自助运行-p
: 指容器的端口映射
查看应用程序是否运行成功
1 | # 查看容器id |
使用 Nginx 反向代理
查看服务容器对应的 ip
输入以下指令查看:
1 | docker inspect <container id> | grep IPAddress |
查看到结果:
1 | "IPAddress": "172.17.0.3", |
修改 nginx 的配置.
增加一条规则将 /api/{path}
转到目标服务的/{path}
:
1 | location /api/ { |
重启 nginx
1 | docker restart <nginx id> |
参考文档: