spring boot项目基于docker 部署在Centos 服务
文章目录
前言
提示:这里是用虚拟机搭建的Centos服务器
服务器我搭建了一个塔Linux面板 方便安装tomcat、MySQL、
docker等开发环境。
一、安装MySQL 、tomcat、docker以及 Linux面板7.4.5
如果在面板安装则非常简单, 动动手指就可以;可以看官网文档;
如果想手动输入命令安装可以参考一下文章:
1、Centsor 安装tomcat 、MySQL 、docker 的步骤
2、maven 包的安装
1.下载maven 压缩包
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
2.解压
tar zxf apache-maven-3.1.1-bin.tar.gz
3.修改配置文件
export M2_HOME=/usr/local/maven3 你的路径
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:$M2_HOME/bin
//使其生效
source /etc/profile
//查看是否安装完成,显示版本,路径则说明正常完成;如图:
mvn -version
docker 的部署
centos8默认使用podman代替docker,所以需要containerd.io.
安装containerd.io
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
1
安装Docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
//启动docker
systemctl start docker
//添加开机启动
systemctl enable docker
1.uname -r
2.yum list installed | grep docker
3.yum -y remove docker-ce.x86_64 19.03.13.ce-1.el7.centos @docker-ce-stable
4.sudo yum update
5.sudo yum install -y yum-utils device-mapper-persistent-data lvm2
6.sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
7.yum list docker-ce --showduplicates | sort -r
8.sudo yum install docker-ce-18.06.3.ce
9.sudo systemctl start docker
10.docker version
11.mvn package docker:build
12.docket ps docker ps -a
13.mvn package
14.mvn clean package docker:build
15.docker images
16.docker build -t demo .
17.docker run -p 8080:8080 -t demo/demo
18.docker stop 78c74103f079
Centos 8 的命令
19.dnf -y install epel-release
20.dnf clean all
30.dnf makecache
31.dnf repolist
更换阿里云开源镜像
https://mirrors.aliyun.com/repo/
下载CentOS-Base.repo 到/etc/yum.repos.d/
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/repo/Centos-8.repo
二、项目的部署
1.在项目配置好docker部署环境
1、pox.mxl
<properties>
<java.version>1.8</java.version>
<docker.image.prefix>demo</docker.image.prefix>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- Docker maven plugin -->
</plugins>
</build>
在项目的src\main\docker 创建一个Dockerfile 文件
FROM primetoninc/jdk:1.8
# 将本地文件夹挂载到当前容器
VOLUME /tmp
# 拷贝文件到容器
ADD demo-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-server","-jar","/app.jar"]
2.打包部
先clean ->在打包 -》package
然后将项目上传到自己的虚拟机上
然后在Xshell 进入cd/ opt/demo 的目录
执行 : mvn package docker:build --打包,第一次打包会久一点;
通过 docker images 查看是否打包成功;
进行在后台运行: docker run -it -p 7080:7080 -t demo/demo /bin/bash
Ctrl + P + Q 退出容器保持后台运行(按住ctrl和P 再按Q),再用 docker ps 进行查看: exit可以直接退出容器;
这样就成功咯: