1.首先创建一个springboot项目 pom文件中加上
<!--模板thymeleaf包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
1.1把springboot打成一个jar包
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 ‘这个是镜像的名字’
完成以后显示这个样子
6.2查看docker镜像
docker images
6.3启动docker镜像
docker run -p 80:8080 -t Boot01
- -p:表示指定端口号 当前端口号:容器内部端口号
- -d 终端运行
- -t 伪终端运行
6.4 测试
7 docker 常用命令
- 构建镜像:
docker build -t Boot01 .
- 启动镜像:
docker run -p 80:8080 -t Boot01
- 查看镜像:
docker images
- 删除镜像:
docker rmi -f 容器的ID
- 查看容易:
docker ps -a
- 停止容器:
docker stop 容器的ID
- 删除容器:
docker rm -f 容器的ID
- 进入容器:
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创建仓库
选择本地仓库 然后点确定
点击镜像仓库 进去 看操作指南
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服务器中