目录
1.申请服务器篇
2.配置安全组篇
3.Docker安装篇
4.代码编写打包篇
目录结构
Maven
Controller
DockerFile
开始打包
5.所需文件上传及镜像构建篇
上传准备
上传jar包及DockerFile文件
指令构建
验证
6.镜像启动服务验证篇
启动镜像
使用云服务器地址进行接口访问
2023/11/16更新
1.安装mysql容器
2.安装完成之后查看
3.启动容器
4.运行mysql容器
5.开启远程访问权限
6.重新打包
7.总结
8.补充
1.申请服务器篇
www.qingcloud.com
创建新的
参数选择
点击创建主机
2.配置安全组篇
说白了:让你的端口让服务器通过
3.Docker安装篇
本机通过FinalShell连接远程服务器
依次执行下面命令
1.初始化
yum install -y yum-utils
2.安装docker基础环境
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
3. 安装docker脚手架
yum install -y docker-ce docker-ce-cli containerd.io
4.默认启动
systemctl enable docker --now
5.验证安装是否成功
docker ps
安装成功后执行docker ps
当前运行的镜像:会出现以下界面,证明安装成功
镜像加速,进入下面的网址复制粘贴运行
阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
4.代码编写打包篇
新建一个springboot应用,使用idea随便写个请求接口
目录结构
Maven
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.7.3</version></dependency></dependencies>
Controller
package com.zsp.docker.controller;import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;@RestController
public class CounterController {@Resourceprivate RedisTemplate<String, String> redisTemplate;@GetMapping("hello")public String count() {Long in = redisTemplate.opsForValue().increment("count");return "有{" + in + "}人访问了这个页面";}
}
DockerFile
#基础环境
FROM openjdk:8-jdk-slim
#作者
LABEL maintainer=zhangshipeng
#将target下的以jar为后缀的文件复制给app.jar
COPY target/*.jar /app.jar
#执行java -jar 命令
ENTRYPOINT ["java","-jar","app.jar"]
开始打包
5.所需文件上传及镜像构建篇
上传准备
新建一个文件夹,内容为DockerFile和target,target里面只放打包后的jar包
上传jar包及DockerFile文件
通过FinalShell进行文件上传,我在云服务器上新建了名为dockerfile的文件夹,将这两个内容放进了这里
很重要这一步,因为我们编写的dockerFile文件中是从target文件夹中把jar包取出来的,所以要保持一致。
指令构建
进入该文件夹,执行构建指令 docker build -t java-docker:v1.0 .
构建指令最后的点不要忘记
docker build 指令是前置, -t 指定构建的名字
验证
构建完,docker images,查看是否成功
6.镜像启动服务验证篇
启动镜像
docker run -d -p 8080:8080 java-docker:v1.0
java-docker:v1.0:在构建时命名的名字
使用云服务器地址进行接口访问
2023/11/16更新
这次增加后台数据库访问及docker安装mysql,远程连接部署等
1.安装mysql容器
在命令行输入 docker pull mysql:8
[root@localhost ~]# docker pull mysql:8
2.安装完成之后查看
docker images
3.启动容器
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=zsp123456 --name mysql --restart=always -v /root/data:/var/lib/mysql -d mysql:8.0
-p设置端口映射
-e设置密码
-name设置名字
restart=always 设置容器自启动
-v 数据卷挂载 -v (参数一):(参数二)
持久化数据到宿主机,容器存储数据的路径在哪?/var/lib/mysql
参数一:把数据存到哪里
参数二:要存储的数据在哪里
运行之后会自动创建一个名为data的目录。
4.运行mysql容器
docker ps 查看mysql运行的id,id为2d81960dc52a
运行以下命令
docker exec -it 0c55686eeb36 bash
mysql -u root -p
Enter password: root
5.开启远程访问权限
mysql8.0需要修改东西,依次执行下面步骤
1.给root用户分配远程访问权限
mysql> GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;
2.更换密码加密方式
mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'zsp123456' PASSWORD EXPIRE NEVER;
3.更新用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'zsp123456';
4.刷新权限
FLUSH PRIVILEGES;
6.重新打包
1.修改原来项目的配置文件,mysql地址改为服务器地址
2.账户密码都是服务器中mysql容器的账户密码
3.重新执行package,上传jar包和DockerFile文件进行构建
4.运行构建好的容器
5.postman测试接口
7.总结
启动mysql,开启端口映射(3306)指定用户名密码后台运行,在docker重启之后自动运行,设置数据卷,持久化数据到宿主机。
8.补充
常用容器操作命令:
查看运行的容器 docker ps
关闭运行的容器 docker stop [CONTAINER ID]
常用镜像操作命令:
查看镜像 docker images
启动镜像 docker run 后面补充其他条件
删除镜像 docker rmi REPOSITORY:TAG