相关博文:

liuge36:Docker运行mysql,redis,oracle容器和SpringBoot项目

在谷歌上百度:使用docker简单启动springboot项目

下雨了_简:使用docker运行springboot项目



1、docker运行mysql

1.1拉取镜像

  1. docker pull mysql

1.2启动容器

  1. docker run -itd -p 3306:3306 mysql bash

首选:

  1. docker run -p 3306:3306 --name l-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.19

1.3进入容器

  1. docker exec -it 随机的容器名(或者l-mysql) bash

1.4开启mysql

  1. service mysql start

1.5设置远程连接

输入mysql进去:

  1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
  2. flush privileges;

1.6查看版本

  1. select version();
  2. 或者
  3. status;

2、docker运行redis

2.1拉取镜像

  1. docker pull redis

2.2启动容器

  1. docker run -p 6379:6379 --name l-redis -d redis

2.3进入容器

  1. docker exec -it l-redis bash

2.4登录

  1. redis-cli -h 127.0.0.1 -p 6379

2.5密码操作

//获取当前密码

  1. config get requirepass

//设置当前密码,服务重新启动后又会置为默认,即无密码;不建议此种方式

  1. config set requirepass "123456"
  2. exit
  3. redis-cli -h 127.0.0.1 -p 6379 -a 123456

3、dokcer运行SpringBoot项目

3.1创建Dockerfile文件

  1. FROM java:8
  2. MAINTAINER 70kg 449246146@qq.com
  3. VOLUME /tmp
  4. ADD mystory-1.0.0-SNAPSHOT.jar app.jar
  5. RUN bash -c 'touch /app.jar'
  6. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

介绍一下:

  • FROM :表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载
  • MAINTAINER :指定维护者的信息
  • VOLUME :VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
  • ADD :拷贝文件并且重命名(前面是上传jar包的名字,后面是重命名)
  • RUN :每条run指令在当前基础镜像执行,并且提交新镜像
  • ENTRYPOINT :为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT

3.2将创建好的Dockerfile文件和jar包上传到服务器,放在同一文件夹下,进入jar包所在文件夹,执行命令

注意:后面末尾有一个空格和一个“.”,mystory是创建的镜像的名字,“.”表示当前目录

  1. docker build -t mystory .

3.3查看生成的镜像:

  1. docker images

3.4创建容器并运行jar包

  1. docker run -d -p 8080:8080 mystory
  • d表示在后台运行
  • -p 指定端口号 第一个8080为容器内部的端口号,第二个8080为外界访问的端口号,将容器内的8080端口号映射到外部的8080端口号
  • 如果想用域名来访问的话,需要把数据库连接改为服务器的ip+数据库端口号,并且命令改为:docker run -d -p 80:80

    mystory

4、使用docker运行springboot项目

创建容器

创建容器我们使用的是dockfile文件创建。对于springboot内置了tomcat,所以我们只配置jdk即可。

dockfile

  1. # 版本信息
  2. FROM centos
  3. MAINTAINER locutus "zjgjian123456@gmail.com"
  4. # OS环境配置
  5. RUN yum install -y wget
  6. # 安装JDK
  7. RUN mkdir /var/tmp/jdk
  8. RUN wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /var/tmp/jdk http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/jdk-8u172-linux-x64.tar.gz
  9. RUN tar xzf /var/tmp/jdk/jdk-8u172-linux-x64.tar.gz -C /var/tmp/jdk && rm -rf /var/tmp/jdk/jdk-8u172-linux-x64.tar.gz
  10. #设置环境变量
  11. ENV JAVA_HOME /var/tmp/jdk/jdk1.8.0_172
  12. ENV CATALINA_HOME /var/tmp/tomcat/apache-tomcat-8.5.8
  13. ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
  14. #开启内部服务端口
  15. EXPOSE 8080
  16. #将springboot的jar包添加进来
  17. ADD docker_spring_boot.jar app.jar
  18. RUN sh -c 'touch /app.jar'
  19. ENV JAVA_OPTS=""
  20. ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

对于jdk我使用的是wget在线获取了,而获取链接是我现在的jdk的下载链接,对于看到这篇文章的访客,那个时候连接未必是这个,所以你们有可能需要找到你们需要的jdk版本的下载链接,替换掉它,同样的环境变量版本号也要替换。

创建

使用命令docker build -t dockerspringboot . 注意命令最后有个小数点。

使用docker images可看到创建的dockerspringboot容器。

运行

使用命令docker run -d -p 8080:8080 dockerspringboot运行刚刚创建的容器。

Docker运行Mysql,Redis,SpringBoot项目的更多相关文章

  1. Docker运行mysql,redis,oracle容器和SpringBoot项目

    dokcer运行SpringBoot项目 from frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD target/demo-0.0.1-SNAPSHOT ...

  2. 阿里云服务器centos7,docker部署mysql+Redis+vue+springboot+Nginx+fastdfs,亲测可用

    一.购买云服务器 我是今年双十一期间在阿里云购买的服务器, 简单配置2核_4G_40G_3M,三年用了不到800块,不过当时我记得腾讯云更便宜,个人感觉,阿里的云服务器更加的稳定, 毕竟身经百战, 经 ...

  3. docker 运行jenkins及vue项目与springboot项目(三.jenkins的使用及自动打包vue项目)

    docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...

  4. docker 运行jenkins及vue项目与springboot项目(一.安装docker)

    docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...

  5. docker 运行jenkins及vue项目与springboot项目(二.docker运行jenkins为自动打包运行做准备)

    docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...

  6. docker 运行jenkins及vue项目与springboot项目(四.docker运行nginx)

    docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...

  7. docker 运行jenkins及vue项目与springboot项目(五.jenkins打包springboot服务且在docker中运行)

    docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...

  8. docker 中部署一个springBoot项目

    docker 中部署一个springBoot项目 (1)介绍 springBoot项目 1.项目结构 2.pom.xml <?xml version="1.0" encodi ...

  9. 使用docker运行mysql

    以前开发的时候都是用本地的sqlite开发,但是极少数情况下,sqlite支持的语法发布到服务器上链接mysql会报错. 为了避免这种现象,还是链接本地mysql开发还是更稳定的, 可是开发的项目多了 ...

随机推荐

  1. MongoDb学习三(spring-data-mongodb)

    本文采用2个种配置方式.xml配置 代码配置方式进行数据库的连接.实现简单的增删该查等一些操作.代码都有注释官方文档如下https://docs.spring.io/spring-data/mongo ...

  2. break continue学习

    1.break和continue必须使用在循环或者switch语句中 2.当break语句单独存在时.后面不要定义其他语句,因为后面的语句无法执行到 3.break跳出当前所在循环 4.break跳出 ...

  3. Docker技术

  4. 设计模式之委派模式(Delegate Pattern)深入浅出

    学习目标:精简程序逻辑,提升代码的可读性. 内容定位:希望通过对委派模式的学习,让自己写出更加优雅的代码的人群. 委派模式定义: 委派模式(Delegate Pattern)的基本作用是负责任务的调度 ...

  5. Angular入门到精通系列教程(7)- 组件(@Component)基本知识

    1. 概述 2. 创建Component 组件模板 视图封装模式 特殊的选择器 :host inline-styles 3. 总结 环境: Angular CLI: 11.0.6 Angular: 1 ...

  6. DevOps,CI,CD,自动化简单介绍

    前言: 随着企业应用的不断迭代,不断扩大,应用的发布发布可能涉及多个团队,如pc端,手机端,小程序端等等.应用发布也就成为了一项高风险,高压力的超过过程,以及应用的开发迭代的沟通,测试成本也大大的变得 ...

  7. Flutter 基础组件:进度指示器

    前言 Material 组件库中提供了两种进度指示器:LinearProgressIndicator和CircularProgressIndicator,它们都可以同时用于精确的进度指示和模糊的进度指 ...

  8. 3.利用jmeter制作性能脚本

        jmeter录制脚本示例   jmeter手工脚本编写与调试   业务逻辑实现之逻辑控制器   业务脚本参数化实现   jmeter处理cookie   beanshell脚本   ...

  9. load data local带来的安全问题

    load data默认读的是服务器上的文件,但是加上local参数后,就可以将本地具有访问权限的文件加载到数据库中,这在带来方便的同时,也带来了以下安全问题, 可以任意加载本地文件到数据库, 在web ...

  10. 串口使用Pipeline时诡异的ReadOnlySequence问题

    借鉴之前的Pipeline的操作方式,现在目标是给串口读取操作也使用上Pipeline.稍微改造一下,以下代码可以直接运行. 协议为使用连续的4个0XFF作为结尾,没有头标志.数据总长为68位定长. ...