1.首先创建一个springboot项目 pom文件中加上

<!--模板thymeleaf包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
1.1把springboot打成一个jar包

spring boot 应用服务器集群 springboot在服务器上运行_java

2. 安装Docker

前提条件

2.1服务器centos7
2.2服务器必须安装java8和配置了 java环境变量
2.3 yum方式安装docker

1. yum install -y yum-utils
 2. yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
 
 3. yum install docker-ce docker-ce-cli containerd.io

2.4安装完成之后 运行 docker hello-world
如果出现超时或者 连接被拒 需要进行 Over the wall

2.5 centos7Over the wall的方式
(1) 注册 登录 阿里云
(2)进入用户信息页面
(3)搜索“镜像”,进入容器镜像服务,点击管理控制台,按照提示输入密码
(4)点击镜像加速器,找到加速器地址 (这个地址后面会使用来进行Over the wall)

3 centos7中添加(加速文件)

/etc/docker/daemon.json
在文件中配置以下内容

sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json
#daemon.json内容如下
{                              
"registry-mirrors":["这里添加阿里云加速器的地址"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker

4 重新启动 docker

启动命令:service docker restart
再次访问docker的hello world: docker hello-world

5 设置docker开启启动

  • systemctl enable docker

6 docker部署spirngboot项目

cd /opt
mkdir Boot01
vim Dockerfile

在dockerfile中添加以下代码

# 基础镜像使用java
FROM java:8
# VOLUME 指定了临时文件目录为/tmp。
VOLUME /tmp
#生成jar的时间为当前本机的时间 
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone
# 将jar包添加到容器中并更名为app.jar
ADD 你jar包的名称 app.jar 
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

编辑完以后出来 直接走下一步

6.1构建docker镜像
docker build -t Boot01 .

build -t ‘这个是镜像的名字’

完成以后显示这个样子

spring boot 应用服务器集群 springboot在服务器上运行_spring boot 应用服务器集群_02

6.2查看docker镜像
docker images
6.3启动docker镜像
docker run -p 80:8080 -t Boot01
  1. -p:表示指定端口号 当前端口号:容器内部端口号
  2. -d 终端运行
  3. -t 伪终端运行
6.4 测试

spring boot 应用服务器集群 springboot在服务器上运行_spring boot 应用服务器集群_03

7 docker 常用命令

  1. 构建镜像:docker build -t Boot01 .
  2. 启动镜像:docker run -p 80:8080 -t Boot01
  3. 查看镜像:docker images
  4. 删除镜像:docker rmi -f 容器的ID
  5. 查看容易:docker ps -a
  6. 停止容器:docker stop 容器的ID
  7. 删除容器:docker rm -f 容器的ID
  8. 进入容器:docker exec -it 容器的ID /bin/bash
7.1将容器打包成镜像
docker commit -a "runoob.com" -m "my apache" 容器名称或id 打包的镜像名称:标签

OPTIONS说明:

  • -a :提交的镜像作者;
  • -c :使用Dockerfile指令来创建镜像;
  • -m :提交时的说明文字;
  • -p :在commit时,将容器暂停。

8 发布镜像

8.1创建仓库

spring boot 应用服务器集群 springboot在服务器上运行_docker_04


选择本地仓库 然后点确定

点击镜像仓库 进去 看操作指南

8.2镜像发布

注意:下面的命令 按照阿里云操作 指南 输入你的(别贴我的 会出错)
命令行输入

$ sudo docker login --username=这里填写你阿里云的用户名 registry.cn-hangzhou.aliyuncs.com

输入后会提示你 让你输入密码 (密码就是 刚刚 我们进入 阿里云容器镜像服务时设置的密码)

$ sudo docker tag [你镜像的ID] registry.cn-hangzhou.aliyuncs.com/hellotest1/test1:[镜像的版本号]

完成之后 在输入

$ sudo docker push registry.cn-hangzhou.aliyuncs.com/hellotest1/test1:[镜像版本号]
8.3镜像拉取
$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/hellotest1/test1:[镜像版本号]

拉取完成 之后 启动镜像 即可

9.springBoot使用插件推送到服务器中的docker镜像里面
<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>2.5.6</version>
			</plugin>
			<!-- 这是最主要的东西 -->
			<plugin>
				<groupId>com.spotify</groupId>
				<artifactId>docker-maven-plugin</artifactId>
				<configuration>
					<!--容器的名称-->
					<imageName>eurekaserver:1.0</imageName>
					<!--容器使用的java环境-->
					<baseImage>java:8</baseImage>
					<!--要推送到 docker的地址 -->
					<dockerHost>http://localhost:2375</dockerHost>
					<!--启动jar包的命令 -->
					<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
					<!--端口号-->
					<exposes>
						<expose>8761</expose>
					</exposes>
					<resources>
						<resources>
							<targetPath>/</targetPath>
							<directory>${project.build.directory}</directory>
							<include>${project.build.finalName}.jar</include>
						</resources>
					</resources>
				</configuration>
			</plugin>
		</plugins>
	</build>

上传到docker服务器中

spring boot 应用服务器集群 springboot在服务器上运行_docker_05