centos7 基于Docker部署Springboot项目

1:centos安装docker

简要:Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。

1.1:卸载旧版本docker(可选)

如果之前安装过旧版本的Docker,可以使用下面命令卸载:

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

1.2:安装docker

1.2.1:设置docker镜像源

下面命令复制一起执行

yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

1.2.2:安装docker

yum install -y docker-ce

docker-ce为社区免费版本。稍等片刻,docker即可安装成功。

到此docker安装完毕

检查是否安装成功,如下图

docker -v

在这里插入图片描述

1.2.3:启动docker

Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙。
关闭防火墙

systemctl stop firewalld

启动docker

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

2:centos安装docker Compose以及启动项目

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

检查是否安装成功,如下图

docker-compose -v

在这里插入图片描述

2.1:前端代码打包

执行 num run build打包前端项目得到一个dist文件夹,如下图
在这里插入图片描述

将此文件夹压缩成dist.zip文件

2.2:后端代码打包

先清理缓存在打包,如下图

centos7 基于Docker部署Springboot项目_第1张图片

打包成功后会在target目录下出现一个jar包,如下图
centos7 基于Docker部署Springboot项目_第2张图片

2.3:编写Dockerfile文件

FROM java:8-jre
#SpringBoot项目必须使用/tmp目录
VOLUME /tmp
#将项目的jar包拷贝并命名
COPY com.suncere.air.diagnosis.jar yga.jar
RUN bash -c "touch /yga.jar"
#暴露的端口
EXPOSE 8040
#执行命令运行项目
ENTRYPOINT ["java","-jar","yga.jar","--spring.profiles.active=prod"]
#解决时间不正确的问题
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  && echo 'Asia/Shanghai' >/etc/timezone \

centos7 基于Docker部署Springboot项目_第3张图片

2.4:编写Docker-compose文件

centos7 基于Docker部署Springboot项目_第4张图片

2.5:创建前端代码所需的文件存放目录

mkdir /root/nginx/html

将dist.zip 解压至该目录

Unzip dist.zip

注:这里dist所存放的位置要与上面的docker-compose文件中的需挂载目录一致

创建nginx.conf配置文件

touch nginx.conf

编写nginx.conf 配置文件,具体配置如下

#user  root;
worker_processes  1;
events {
  worker_connections  1024;
}
http {
  include       mime.types;
  default_type  application/octet-stream;
  sendfile        on;
  keepalive_timeout  65;
  server {
      listen       80;
      server_name  localhost;
      location / {
          root   /usr/share/nginx/html;
          try_files $uri $uri/ /index.html last;
          index  index.html index.htm;
      }

      location @router {
             rewrite ^.*$/index.html last;
        }
      location /bus {
             proxy_pass http://192.168.3.3:8040;
       }

      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   html;
      }
  }
}

centos7 基于Docker部署Springboot项目_第5张图片

2.6:启动项目

本地打包springboot项目,com.suncere.air.diagnosis.jar,并上传到linux中,同时docker-compose.yml、Dockerfile也上传到同一目录下。如下图
在这里插入图片描述

开始编排

cd /root

注:此处cd 是cd到docker-compose.yml目录下

docker-compose up -d

最终出现如下图则表明项目部署成功
在这里插入图片描述

访问页面 ip加端口

centos7 基于Docker部署Springboot项目_第6张图片

2.7:查看容器日志

先使用docker ps查看正在运行的容器,然后使用docker logs -f 容器id查看日志,如下图

在这里插入图片描述

centos7 基于Docker部署Springboot项目_第7张图片

3:搭建私有仓库

3.1:配置docker信任地址

私服采用的是http协议,默认不被docker信任,所以需要配置:

3.1.1:拉取最新仓库镜像

docker pull registry

3.1.2:修改文件

vi /etc/docker/daemon.json

注:此处如果没有这个daemon.json文件新增即可
添加如下参数

"insecure-registries": ["http://192.168.3.3:8080"]

注:此处ip为服务器ip,需替换

3.1.3:重新加载

systemctl daemon-reload 

3.1.4:重启docker

systemctl restart docker

3.2:配置带有图形化界面版本

3.2.1:编写dockercompose文件

这里建议将这个docker-compose.yml文件放到自己新建的目录下
例如 /root/docker

创建docker文件夹

mkdir /root/docker

创建docker-compose.yml配置文件

touch docker-compose.yml
vi /root/docker/docker-compose.yml

添加参数如下

version: '3.0'
services:
  registry:
    image: registry
    volumes:
      - ./registry-data:/var/lib/registry
  ui:
    image: joxit/docker-registry-ui:static
    ports:
      - 8080:80
    environment:
      - REGISTRY_TITLE= 私有仓库
      - REGISTRY_URL=http://registry:5000
    depends_on:
      - registry

注:此配置文件中的ports中的8080与上面daemon.json中配置的端口一致

3.2.2:启动私有仓库

在当前目录输入

docker-compose up -d

出现如下图片则表示下载启动成功

centos7 基于Docker部署Springboot项目_第8张图片

3.2.3:查看私有仓库

页面输入ip加端口,例如192.168.3.3:8080

注:此处ip为服务器ip,需替换

3.2.4:推送镜像至私有仓库

注:推送镜像到私有仓库必须先tag,步骤如下

1:重新tag本地镜像,名称前缀为私有仓库的地址:例如 192.168.3.3:8080/

docker tag nginx:1.20.2 192.168.3.3:8080/nginx:1.20.1

2:推送镜像

docker push 192.168.3.3:8080/nginx:1.20.1 

3:拉取镜像

docker pull 192.168.3.3:8080/nginx:1.20.1 

你可能感兴趣的:(docker,centos,spring,boot)