Docker + Nginx 镜像部署 Vue 项目
简单介绍 Docker
Docker 真是个好东西,很好的降低了不同环境发版的兼容性问题。无论是 Linux, Windows 或是 Mac OS,再也不用怕系统环境不同,软件版本不同导致的项目无法启动。这些问题只需要自定义 Docker 镜像,并在 Docker 中启动,就能搞定部署啦。
部署 Vue 项目
传统的部署一般为编译后放在 Nginx 目录下,或者放在 Tomcat 目录下。玩了有一阵子 Docker 了,就试试用 Docker 来部署吧。
本地操作
首先给本地的vue项目打包
1 | npm run build |
执行命令之后项目根目录下会出现 dist 文件夹,将其上传至服务器。
服务器操作
编写 Dockerfile
新建 Dockerfile
vi Dockerfile
1 | #导入nginx镜像 |
Nginx配置
新建default.conf
vi default.conf
1 | server { |
Docker 打包
打包前项目目录下应该有这几个文件(夹):default.conf
, dist
,Dockerfile
1 | docker build -t zhiliao:v1 . |
别忘了末尾的小点点
最后出现这两条提示即为打包成功
1 | Successfully built 6f656946fde3 |
查看镜像
1 | docker images |
如果在结果中看到,则为打包成功
1 | REPOSITORY TAG IMAGE ID CREATED SIZE |
运行
1 | docker run -d -p 80:8000 zhiliao:v1 |
命令中的-d
意为后台运行
-p 为端口号,前半部分为外网访问的端口,后半部分为 Nginx 反向代理寻找的内部端口
查看运行结果
1 | docker ps |
这条命令等价于docker container ls
,加上 -a 则可显示全部
1 | [root@VM_108_54_centos zhiliao-vue]# docker ps -a |
查找日志
如果遇到程序崩溃或者镜像启动失败
1 | docker logs 'CONTAINER ID' |
使用 ps 命令可以找到到 CONTAINER ID
1 | [root@VM_108_54_centos zhiliao-vue]# docker logs bdd5842a4cae |
参考链接: