Docker 是一个开源的应用容器引擎,它有助于更快地交付应用。Docker 可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker , 可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。你可以将其理解为一个轻量级的虚拟机,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。
安装参考官方文档
Docker 的官方网址链接:https://www.docker.com Docker 的 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 nginxVOLUME ./tmpENV 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.confserver { #项目中定义的端口号 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 来停止容器
出现如下图所示即为成功
说明:
格式为 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)