目录
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.补充
www.qingcloud.com
创建新的
参数选择
点击创建主机
说白了:让你的端口让服务器通过
本机通过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
镜像加速,进入下面的网址复制粘贴运行
阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
新建一个springboot应用,使用idea随便写个请求接口
org.springframework.boot
spring-boot-starter-web
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-data-redis
redis.clients
jedis
2.7.3
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 {
@Resource
private RedisTemplate redisTemplate;
@GetMapping("hello")
public String count() {
Long in = redisTemplate.opsForValue().increment("count");
return "有{" + in + "}人访问了这个页面";
}
}
#基础环境
FROM openjdk:8-jdk-slim
#作者
LABEL maintainer=zhangshipeng
#将target下的以jar为后缀的文件复制给app.jar
COPY target/*.jar /app.jar
#执行java -jar 命令
ENTRYPOINT ["java","-jar","app.jar"]
新建一个文件夹,内容为DockerFile和target,target里面只放打包后的jar包
通过FinalShell进行文件上传,我在云服务器上新建了名为dockerfile的文件夹,将这两个内容放进了这里
很重要这一步,因为我们编写的dockerFile文件中是从target文件夹中把jar包取出来的,所以要保持一致。
进入该文件夹,执行构建指令 docker build -t java-docker:v1.0 .
构建指令最后的点不要忘记
docker build 指令是前置, -t 指定构建的名字
构建完,docker images,查看是否成功
docker run -d -p 8080:8080 java-docker:v1.0
java-docker:v1.0:在构建时命名的名字
这次增加后台数据库访问及docker安装mysql,远程连接部署等
在命令行输入 docker pull mysql:8
[root@localhost ~]# docker pull mysql:8
docker images
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的目录。
docker ps 查看mysql运行的id,id为2d81960dc52a
运行以下命令
docker exec -it 0c55686eeb36 bash
mysql -u root -p
Enter password: root
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;
1.修改原来项目的配置文件,mysql地址改为服务器地址
2.账户密码都是服务器中mysql容器的账户密码
3.重新执行package,上传jar包和DockerFile文件进行构建
5.postman测试接口
启动mysql,开启端口映射(3306)指定用户名密码后台运行,在docker重启之后自动运行,设置数据卷,持久化数据到宿主机。
常用容器操作命令:
查看运行的容器 docker ps
关闭运行的容器 docker stop [CONTAINER ID]
常用镜像操作命令:
查看镜像 docker images
启动镜像 docker run 后面补充其他条件
删除镜像 docker rmi REPOSITORY:TAG