Xshell 6 连接 Linux 服务器
没有nginx 镜像的先获取
docker pull nginx
本地项目创建文件(项目根目录同级)
1、创建 nginx config 配置文件
* 创建 nginx 文件夹,该文件夹下新建文件 default.conf
* 这里路由模式是 history,需要进行配置
server {
#端口
listen xxx;
server_name localhost;
#charset koi8-r;
access_log /var/log/nginx/host.access.log main;
error_log /var/log/nginx/error.log error;
#配置 vue 路由 history模式
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
2、创建 Dockerfile 文件
FROM nginx
COPY dist/ /usr/share/nginx/html/
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
部署
*脚本部署
1、项目根目录同级创建 dockerrun.sh 文件
#!/usr/bin/env bash
# 定义应用组名
group_name='xxx'
# 定义应用名称
app_name='xxx'
# 定义应用版本
app_version='1.0'
# 端口号(和default.conf中的一致)
app_port="xxx"
echo '----停止容器----'
docker stop ${app_name}
echo '----移除容器----'
docker rm ${app_name}
echo '----删除镜像----'
docker rmi ${group_name}/${app_name}:${app_version}
echo '----构建镜像----'
docker build -t ${group_name}/${app_name}:${app_version} .
echo '----启动镜像----'
docker run -p ${app_port}:${app_port} --name ${app_name} --restart=always \
-e TZ="Asia/Shanghai" \
-v /etc/localtime:/etc/localtime \
-d ${group_name}/${app_name}:${app_version}
echo '----启动状态----'
docker ps -a --filter name=${app_name}
2、 打包的dist ; nginx ; Dockerfile ; dockerrun.sh 上传到服务器
3、在目录下运行 dockerrun.sh 完成自动化部署
./dockerrun.sh
*手动命令部署
1、打包的dist ; nginx ; Dockerfile 上传到服务器
2. 基于该Dockerfile构建vue应用镜像
在目录运行命令(注意不要少了最后的 “.” )
docker build -t 镜像名称 .
3. 查看本地镜像,运行命令
docker images
到此时我们的 vue 应用镜像 vuenginxcontainer 已经成功创建。接下来,我们基于该镜像启动一个docker容器。
4. 启动容器,基于 vuenginxcontainer 镜像启动容器,运行命令:
docker run -p 端口:端口 -d --name 容器名称 镜像名称
其他命令
查看所有容器
docker ps -a
启动一个已停止的容器:
docker start CONTAINER ID
停止一个容器
docker stop CONTAINER ID
删除一个容器
docker rm CONTAINER ID
docker rm -f CONTAINER ID // 强制
删除镜像
docker rmi IMAGE ID
Docker 教程
本文转载:www.cnblogs.com/tentacion/p…
如需配置https证书/域名
在服务器的nginx下新增配置文件,代理到docker的web项目端口