当前位置: 首页 > article >正文

在Docker上部署Springboot项目

在Docker上部署Springboot项目

###1.安装docker

2.安装mysql

  1. 拉 Mysql 镜像
docker pull mysql:5.7.31
  1. 运行 Mysql 5.7.31
    第一次运行需要设置密码
docker run -d --name myMysql -p 9506:3306 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7.31

不是第一次

docker run -d --name myMysql -p 9506:3306 -v /data/mysql:/var/lib/mysql mysql:5.7.31

启动成功会返回一个id

参数分析

-d: 后台运行容器,并返回容器 ID
–name myMysql: 为容器指定一个名称
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-v: 绑定一个卷,容器的 /var/lib/mysql 映射到 主机的目录 /data/mysql
-e MYSQL_ROOT_PASSWORD=123456: 设置环境变量,密码设置为 123456
mysql:5.7.31:使用镜像 mysql:5.7.31

3.把打包好的jar包上次到 /opt/service/testdocker目录下

把打包好的jar包上次到 /opt/service/testdocker目录下,上传之后,在 /opt/service/testdocker 新建一个文件名为Dockerfile的文件,文件内容如下:

FROM  openjdk:8
VOLUME /opt/service/testdocker
ADD testdocker.jar testdocker.jar
EXPOSE 9999
ENTRYPOINT ["java","-jar","/testdocker.jar"]
from openjdk:8 拉取一个 jdk 为 1.8 的依赖环境
testdocker.jar 就是你上传的 jar 包,替换为 jar 包的名称
testdocker.jar 是你将该 jar 包重新命名为什么名称,在容器中运行
expose 该容器暴露的端口是多少,就是 jar 在容器中以多少端口运行
entrypoint 容器启动之后执行的命令,java -jar /testdocker.jar 即启动 jar

4.打包镜像

docker build -t fishexam .

5.运行容器

1. 第一次启动

docker run -d -p 9999:9090--name testdocker-9999 testdocker

然后访问ip:+端口
2. 启动过了

[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED      STATUS                        PORTS                                                  NAMES
38e8a434088b   testdocker     "java -jar /testdock…"   6 days ago   Exited (255) 21 minutes ago   9999/tcp, 0.0.0.0:9999->9090/tcp, :::9999->9090/tcp    testdocker-9999
56c468b14848   mysql:5.7.31   "docker-entrypoint.s…"   6 days ago   Exited (255) 21 minutes ago   33060/tcp, 0.0.0.0:9506->3306/tcp, :::9506->3306/tcp   myMysql

启动命令

docker run -d -p 9999:9090 --name testdocker-9998 testdocker

启动成功会返回一个id

docker 常用命令

docker run: 启动一个容器
docker ps: 查看正在运行的容器
docker images: 查看本地镜像列表
docker pull: 拉取一个镜像到本地
docker build: 根据 Dockerfile 构建一个镜像
docker stop: 停止一个运行中的容器
docker rm: 删除一个容器
docker rmi: 删除一个本地镜像
docker exec: 在运行中的容器内执行命令
docker restart: 重启一个容器
docker logs: 查看容器的日志
docker inspect: 查看容器的详细信息
docker network: 管理容器网络
docker volume: 管理容器数据卷
docker-compose up: 使用 Docker Compose 启动多个容器
docker-compose down: 停止并移除使用 Docker Compose 启动的容器
docker save: 将一个镜像保存为 tar 文件
docker load: 从 tar 文件中加载一个镜像
docker tag: 给镜像打标签
docker push: 推送一个本地镜像到远程仓库

设置开机自启

[root@localhost ~]# sudo docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                                  NAMES
3bf17dd66cfc   mysql:5.7.31   "docker-entrypoint.s…"   3 minutes ago    Up 3 minutes    33060/tcp, 0.0.0.0:9506->3306/tcp, :::9506->3306/tcp   myMysql
748874f45662   testdocker     "java -jar /testdock…"   10 minutes ago   Up 10 minutes   9999/tcp, 0.0.0.0:9999->9090/tcp, :::9999->9090/tcp    testdocker-9999
[root@localhost ~]# docker update --restart=always myMysql
myMysql
[root@localhost ~]# docker update --restart=always testdocker-9999
testdocker-9999

http://www.kler.cn/a/150181.html

相关文章:

  • mark 一些攻防 prompt
  • 1、Qt6 Quick 简介
  • Linux和,FreeRTOS 任务调度原理,r0-r15寄存器,以及移植freertos(一)
  • Qt中的Model与View 2
  • 笔记-利率学习记录
  • Linux rabbitmq客户端 SimpleAmqpClient 源码编译
  • 大一学编程怎么学?刚接触编程怎么学习,有没有中文编程开发语言工具?
  • 为什么预处理对象会提升处理的性能
  • 线性可分SVM摘记
  • java学习part23异常try catch
  • Elasticsearch:ES|QL 函数及操作符
  • HTTP常见响应码
  • 小航助学题库蓝桥杯题库c++选拔赛(22年1月)(含题库教师学生账号)
  • 对话式数据需求激增,景联文科技提供高质量多轮对话数据定制采集标注服务
  • 20. Matplotlib 数据可视化
  • 企业微信http协议接口调用,发送视频号消息
  • 荣耀冲击高端,一边推新「修路」,一边降价「拆桥」
  • 网络相关-面试高频
  • 自动化测试工具——Monkey
  • GANVAEDiffusion
  • Mysql之子查询(知识点+例题)
  • 知识蒸馏相关基础知识
  • Vue3框架中让table合计居中对齐
  • 自定义类型:结构体,枚举,联合
  • A*算法学习
  • 论文笔记:Confidential Assets