1.打包

将项目打jar包并传到服务器的一个文件夹中,我的是/opt/docker,注意项目中的mysql配置的IP是服务器公网的ip地址

#数据源设置
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://121.199.74.249:1008/blog?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver server.port=8888

2.在同一文件夹中编写Dockerfile

touch Dockerfile
# 基础镜像使用java
FROM java:8
EXPOSE 8888
# 作者
MAINTAINER tyy<1057286890@qq.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
#在容器中创建挂载点,可以多个
VOLUME /tmp
# 就是配置文件中的日志文件夹
VOLUME /logfile
# 将jar包添加到容器
ADD tyyblog.jar blog.jar
# 运行jar包
RUN sh -c 'touch /blog.jar '
ENTRYPOINT ["sh","-c","java -jar /blog.jar "]

3.build镜像

docker build -t blog .

现在就有名字为blog的镜像

4.需要在仓库拉一个mysql的镜像

docker pull mysql:8.0

5.先创建启动mysql的容器

docker run -p 3306:3306 --name mysql1 -v /opt/mysqldata/conf:/etc/mysql/conf.d -v /opt/docker/mysqldata/logs:/logs -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=*** -d -it mysql:8.0

修改端口号

命令说明
mysql-test: 容器名
/etc/mysql/my.cnf:容器中 my.cnf路径
/root:my.cnf在宿主机保存路径 docker cp mysql-test:/etc/mysql/my.cnf /opt/mysql
粘回去
docker cp /opt/mysql/my.cnf mysql:/etc/mysql/ docker exec -it mysql /bin/bash

意思为

#--restart=always    当docker重启时,容器也重启
# 容器终止运行后自动删除容器文件
# --rm
# 主机端口映射到容器端口
#-p 3306:3306
# 给容器起别名(非常重要,项目中的数据库地址需要和别名一致)
#--name mysql1
# 把主机的配置文件映射到容器的配置文件
#-v /opt/docker/mysqldata/conf:/etc/mysql/conf.d
# 把主机的日志映射到容器的日志
#-v /opt/docker/mysqldata/logs:/logs
# 把主机的数据映射到容器(每次重启容器不用担心数据被清空了)
#-v /var/lib/mysql:/var/lib/mysql
# 数据库密码
#-e MYSQL_ROOT_PASSWORD=root
# 后台启动

6.创建blog的镜像

docker run -itd --name blog1 -p 8888:8888 --link mysql1:blog blog

意思是

# 容器终止运行后自动删除容器文件
#--rm
# 后台启动
#-itd
# 主机端口映射到容器端口
#-p 8888:8888
# 为容器起别名
#--name blog1
# 连接提供mysql服务的容器,冒号后面是别名,别名应该和代码中的数据库地址一致(这点真的很重要)
#--link mysql1:blog
# 由哪个镜像生成的
#blog

7.就可以访问了

http://121.199.74.249:8888/

Docker部署spring boot项目的更多相关文章

  1. 使用Docker部署Spring boot项目

    Docker是一个使用广泛的Linux容器管理工具包,它允许用户创建镜像,并将其容器实例化.通过本指南,我们可以学习到如何使用Docker部署Spring Boot项目. 先决条件 开发之前,你必须具 ...

  2. Windows Docker 部署 Spring Boot 项目

    目录 Docker Configuration Config IDEA Plugin Create Spring Boot Project Containerize It Use Dockerfile ...

  3. 使用 Docker 部署 Spring Boot 项目

    Docker 介绍 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口.它是目前最流行的 Linux 容器解决方案. Docker 将应用程序与该程序的依赖,打包在一个文件里面 ...

  4. 使用 Docker 部署 Spring Boot 项目,带劲!!

    上一篇:年轻人的第一个 Docker 应用 Docker 一次构建.处处运行及快速启停的特性,在微服务架构中有着举足轻重的地位,具体的概念性的东西就不介绍了,不懂的点击这里阅读 Docker 基础教程 ...

  5. IDEA连接远程服务器Docker部署Spring Boot项目

    开始前的准备工作 拥有一台云服务器,我的是腾讯云服务器(CentOS7) 腾讯云服务器安装Docker,我的版本是Docker 19.03.9,关于安装和配置镜像加速器可以查阅我的另一篇博文:http ...

  6. 【docker】docker部署spring boot项目在服务器上

    IDE:idea 工具:docker spring boot:2.0.1 ======================================== 简单记录一下流程,以供参考: 第一步:首先得 ...

  7. docker部署spring boot项目在服务器上

    IDE:idea 工具:docker spring boot:2.0.1 ======================================== 简单记录一下流程,以供参考: 第一步:首先得 ...

  8. Docker 部署Spring Boot 项目并连接mysql、redis容器(记录过程)

    Spring Boot 项目配置 将写好的Spring Boot 项目通过maven 进行package打包获得可执行Jar 再src/main/docker(放哪都行)下编写创建Dockerfile ...

  9. docker 部署spring.boot项目【一】(引用外部配置文件)

    上一篇随笔,nginx是启动运行在容器内,spring.boot的web项目是运行在宿主内,这一篇的目的,是把web项目也制作成镜像,然后在容器里启动. 文件目录结构如下: 主要文件结构说明:(1)b ...

  10. 如何用Docker部署Spring Boot项目

    1.idea中安装docker插件: 2.新建DockerFile,内容如下. # 基础镜像使用java FROM java:8 # 作者 MAINTAINER vic <test@163.co ...

随机推荐

  1. C 语言因为疫情重登最流行编程语言榜第一名!其实它一直都在~

      C 语言时隔五年后再次荣登最流行编程语言榜单第一名. 通过调查得出结论, C 语言再次受欢迎的原因竟然是因为病毒,这听起来愚蠢但确实是事实,嵌入式语言 C 和 C++ 被用于医疗设备中的幅度因为疫 ...

  2. Linux命令行history

    概述 当执行命令后,系统默认会在内存记录执行过的命令 当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是~/.bash_history 登录shell时,会读取命令历史文件中记录下的命令加 ...

  3. JS实现将二维数组生成到页面上

    前言 之前没说过数组,现在来写一下数组 CSS span { border:2px solid skyblue; width:30px; height: 30px; display: inline-b ...

  4. linux文本三剑客之grep

    grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正 ...

  5. JS逻辑运算符之“短路”

    逻辑与 && 如(表达式 1 && 表达式 2)参与运算时,程序只运行到对应的位置后,停止运行 二者都为 真(true) 时,返回表达式 2 二者有一个为 假 (fal ...

  6. 使用contentProvider

    内部利用contentProvider暴露接口供外部查询删除操作,外部查询删除使用contentResolver,首先使用sqlite创建一个数据库表student,然后使用contentProvid ...

  7. 基于Spring读写分离

    为什么是基于Spring的呢,因为实现方案基于Spring的事务以及AbstractRoutingDataSource(spring中的一个基础类,可以在其中放多个数据源,然后根据一些规则来确定当前需 ...

  8. vue 用别名取代路径引用

    在项目开发过程中有可能很多包是没有放在npm上的,许多包需要下载到本地引用,这样一来我们只能通过require的方式来引用文件,但是路径的名字就会很长 例如 import Select from '. ...

  9. xlrd加载Excal表格编码格式的问题

    Python自动化测试中,利用xlrd加载文件名,代码如下: newpath = os.chdir('文件所在目录') filename = "文件名.xlsx" 报IOError ...

  10. IDEA 搭建 Spark 源码 (Ubuntu)

    版本:Spark 2.4.3/JDK 1.8/Scala 2.11.0 1.选择Spark版本.压缩包下载. 2.IDEA中左下角Terminal下输入: mvn -DskipTests clean ...