基本步骤
- 在本地打包vue项目成docker镜像(image)
- 上传至服务器加载镜像
拉取nginx
docker pull nginx
- 不指定版本会拉取最新版
latest
vue项目根目录中创建nginx配置文件default.conf
server {
listen 80;
server_name localhost; # 修改为docker服务宿主机的ip
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
root /usr/share/nginx/html
– 这个目录和下面创建的Dockerfile
中目录要保持一致
vue项目根目录下创建Dockerfile
FROM nginx
MAINTAINER beizhu
RUN rm /etc/nginx/conf.d/default.conf
ADD default.conf /etc/nginx/conf.d/
COPY dist/ /usr/share/nginx/html/
FROM nginx
– 打包容器的底层来刚才先拉取的nginx
MAINTAINER beizhu
– 备注RUN rm /etc/nginx/conf.d/default.conf
– 删除目录下的default.conf文件ADD default.conf /etc/nginx/conf.d/
– 将default.conf复制到/etc/nginx/conf.d/下,用本地的default.conf配置来替换nginx镜像里的默认配置COPY dist/ /usr/share/nginx/html/
– 将项目根目录下dist文件夹(构建之后才会生成)下的所有文件复制到镜像/usr/share/nginx/html/目录下上一步root地址
构建vue项目
npm run build
- 项目目录
打包docker镜像image
docker build -t zz-mms-tx .
.
– 表示打包本目录下文件必填
-t
– 给镜像取名- 打开
docker桌面软件
查看是否打包成功
Images
– 镜像Containers / Apps
– 容器,运行镜像的东西
本地试运行
docker run -d -p 9090:80 --name mms-tx zz-mms-tx:latest
-
-d
– 后台方式启动 -
-p
– 端口映射9090
本地端口80
docker端口 -
--name mms-tx zz-mms-tx:latest
–mms-tx
给容器起名zz-mms-tx:latest
要运行的镜像名:版本不填就是latest
-
本地访问127.0.0.1:9090发现正常访问
部署到服务器
- 通过阿里云镜像服务中转(上篇文章已讲)
- 通过自建镜像服务中转(harbor部署以后讲解)
- 手动部署(本文使用方法)
将镜像压缩成tar文件
docker save zz-mms-tx > zz-mms-tx.tar
save
– 压缩镜像zz-mms-tx
– 待压缩的镜像名zz-mms-tx.tar
– 压缩后的文件名- 也可以将
container
(容器)commit
成新镜像,然后压缩新镜像 - 打包后tar文件会出现在访问目录中,例如在vue项目目录中打包,就出现在vue项目根目录
复制zz-mms-tx.tar
到目的主机下任意文件下
- 一般放在/usr目录下
- 使用sftp工具复制,如
Termius
,SecureCRT
Termius
可以直接拖拽,无命令
恢复zz-mms-tx.tar
为镜像
cat zz-mms-tx.tar | docker load
运行容器
docker run -d -p 80:80 --name mms zz-mms-tx:latest