Docker 部署 saber
一、环境准备
Docker
是一个开源的应用容器引擎,它有助于更快地交付应用。Docker
可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker
, 可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。你可以将其理解为一个轻量级的虚拟机,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。
1. Docker安装与配置
安装参考官方文档
Docker
的官方网址链接:https://www.docker.comDocker
的 GitHub:https://github.com/docker/docker
配置:
- 进入
Docker settings
- 修改
Insecure registries
为10.60.20.70:8010
- 修改
Registry mirrors
为https://10.60.20.70:8010
2.编写 saber 项目下的 Dockerfile 和 default.conf
示例如下:
#Dockerfile
FROM nginx
VOLUME ./tmp
ENV LANG en_US.UTF-8
ADD ./dist/ /usr/share/nginx/html/
ADD ./default.conf /etc/nginx/conf.d/default.conf
# 命令详解:
# ENV:设置环境变量,定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。
# ADD:复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
# VOLUME:定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。
# FROM:定制的镜像都是基于 FROM 的镜像。
#default.conf
server {
#项目中定义的端口号
listen 80;
server_name 127.0.0.1;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location /api {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://10.60.20.70:8088; #后端springboot项目地址
proxy_set_header Host $http_host;
}
}
3. MobaXterm 的安装与配置
MobaXterm
又名 MobaXVT
,是一款增强型远程连接工具,类似xshell。可以轻松地来试用Unix / Linux上的GNUUnix命令。这样一来,我们可以不用安装虚拟机来试用虚拟环境,然后只要通过 MobaXterm
就可以使用大多数的linux命令。
安装参考官方文档
MobaXterm
的官方地址链接:https://mobaxterm.mobatek.net/
安装完毕后界面是这样的
当然你们刚安装完成是不会有任何session的。下面来创建第一个SSH session。
点击菜单栏[sessions] --> [new session] ,即可弹出 [session setting] 对话框。如下图所示
二、部署 saber
1.在 saber 项目下打包
我们可以使用 yarn build
或者 npm run build
来对项目进行打包
当出现如下语句时,便打包成功了,你会得到一个 dist
文件夹,这就是我们将要放到服务器上的发布版本
2.接下来分为两种情形
情形一:本地已经安装 Docker
<1>直接在本地将产生的 dist 文件夹打包成镜像
docker build [OPTIONS] PATH | URL | -
实例: docker build -t 10.60.20.70:8010/saber/saber:2.6.0 .
参数说明:
-t
: 镜像的名字及标签- 使用当前目录的 Dockerfile 创建镜像,标签为
10.60.20.70:8010/saber/saber:2.6.0
.
:指镜像构建时打包上传到Docker引擎中的文件的目录
出现如下图所示即为成功
<2>将镜像推送到终端
docker push [OPTIONS] NAME[:TAG]
实例: docker push 10.60.20.70:8010/saber/saber:2.6.0
出现如下图所示即为成功
<3>接下来进入MobaXterm,进入到docker文件目录下
实例: cd /usr/local/docker/
<4>拉取镜像
实例: docker pull 10.60.20.70:8010/saber/saber:2.6.0
出现如下图所示即为成功
<5>使用以下命令来查看最新的镜像
docker images
在上图中可以看到我们最新的镜像已经拉取成功
<6>使用 docker-compose down
来停止容器
出现如下图所示即为成功
<7>使用 docker-compose up -d
来构建,(重新)创建,启动并附加到服务容器
说明:
- 格式为
docker-compose up [options] [SERVICE...]
- 该命令可以完成包括构建镜像、(重新)创建服务、启动服务,并关联服务相关容器的一系列操作
- 如果希望在后台启动并运行所有的容器,使用docker-compose up -d
出现如下图所示即为成功
情形二:本地没有安装 Docker
<1>将dist文件夹、Dockerfile和default.conf一起复制到终端上
<2>cd到放置dist文件的目录下
实例:cd /usr/local/ITDOCimage/
<3>在 MobaXterm 将产生的dist文件夹打包成镜像
实例:docker build -t 10.60.20.70:8010/saber/saber:2.6.0 .
出现如下图所示即为成功
<4>使用 docker-compose down
来关掉容器
<5>使用 docker-compose up -d
来启动镜像
注:定期要清理 Docker 上的镜像
实例: docker rmi imageID
小袁(2022-02-18)