Docker运行Mysql,Redis,SpringBoot项目
Docker运行Mysql,Redis,SpringBoot项目
相关博文:
liuge36:Docker运行mysql,redis,oracle容器和SpringBoot项目
在谷歌上百度:使用docker简单启动springboot项目
下雨了_简:使用docker运行springboot项目
1、docker运行mysql
1.1拉取镜像
docker pull mysql
1.2启动容器
docker run -itd -p 3306:3306 mysql bash
首选:
docker run -p 3306:3306 --name l-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.19
1.3进入容器
docker exec -it 随机的容器名(或者l-mysql) bash
1.4开启mysql
service mysql start
1.5设置远程连接
输入mysql进去:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
1.6查看版本
select version();
或者
status;
2、docker运行redis
2.1拉取镜像
docker pull redis
2.2启动容器
docker run -p 6379:6379 --name l-redis -d redis
2.3进入容器
docker exec -it l-redis bash
2.4登录
redis-cli -h 127.0.0.1 -p 6379
2.5密码操作
//获取当前密码
config get requirepass
//设置当前密码,服务重新启动后又会置为默认,即无密码;不建议此种方式
config set requirepass "123456"
exit
redis-cli -h 127.0.0.1 -p 6379 -a 123456
3、dokcer运行SpringBoot项目
3.1创建Dockerfile文件
FROM java:8
MAINTAINER 70kg 449246146@qq.com
VOLUME /tmp
ADD mystory-1.0.0-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
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是创建的镜像的名字,“.”表示当前目录
docker build -t mystory .
3.3查看生成的镜像:
docker images
3.4创建容器并运行jar包
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
# 版本信息
FROM centos
MAINTAINER locutus "zjgjian123456@gmail.com"
# OS环境配置
RUN yum install -y wget
# 安装JDK
RUN mkdir /var/tmp/jdk
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
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
#设置环境变量
ENV JAVA_HOME /var/tmp/jdk/jdk1.8.0_172
ENV CATALINA_HOME /var/tmp/tomcat/apache-tomcat-8.5.8
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
#开启内部服务端口
EXPOSE 8080
#将springboot的jar包添加进来
ADD docker_spring_boot.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
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项目的更多相关文章
- Docker运行mysql,redis,oracle容器和SpringBoot项目
dokcer运行SpringBoot项目 from frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD target/demo-0.0.1-SNAPSHOT ...
- 阿里云服务器centos7,docker部署mysql+Redis+vue+springboot+Nginx+fastdfs,亲测可用
一.购买云服务器 我是今年双十一期间在阿里云购买的服务器, 简单配置2核_4G_40G_3M,三年用了不到800块,不过当时我记得腾讯云更便宜,个人感觉,阿里的云服务器更加的稳定, 毕竟身经百战, 经 ...
- docker 运行jenkins及vue项目与springboot项目(三.jenkins的使用及自动打包vue项目)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- docker 运行jenkins及vue项目与springboot项目(一.安装docker)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- docker 运行jenkins及vue项目与springboot项目(二.docker运行jenkins为自动打包运行做准备)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- docker 运行jenkins及vue项目与springboot项目(四.docker运行nginx)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- docker 运行jenkins及vue项目与springboot项目(五.jenkins打包springboot服务且在docker中运行)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- docker 中部署一个springBoot项目
docker 中部署一个springBoot项目 (1)介绍 springBoot项目 1.项目结构 2.pom.xml <?xml version="1.0" encodi ...
- 使用docker运行mysql
以前开发的时候都是用本地的sqlite开发,但是极少数情况下,sqlite支持的语法发布到服务器上链接mysql会报错. 为了避免这种现象,还是链接本地mysql开发还是更稳定的, 可是开发的项目多了 ...
随机推荐
- Asp.net Core 2.0 实现Cookie会话
与1.0版本相比微软做了一些调整.详细请参考官方文档,我这里就讲2.0的吧 1.首先要在 根目录下 Startup.cs 类中启用 cookie会话,有两处要配置 第一处在 public void ...
- Kubernetes官方java客户端之三:外部应用
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 彻底搞懂Java开发工具包(JDK)安装及环境变量配置
一.Java 和 JDK 是什么 Java:Java是一种优秀的程序设计语言,它有非常多的语言特性,如简单性.面向对象.可移植性等.Java 并不只是一种语言,而是一个完整的平台,它有一个庞大的库,其 ...
- APACHE如何里一个站点绑定多个域名?用ServerAlias 转
APACHE2如何里一个站点绑定多个域名?用ServerAlias以前很笨,要使多个域名指向同一站点总是这样写:<VirtualHost *:80>ServerAdmin i@kuigg. ...
- NOIP初赛篇——04计算机软件系统
计算机软件是指计算机系统中的程序及其文档,也是用户与硬件之间的接口,用户主要通过软件与计算机进行交流,软件是计算机的灵魂.没有安装软件的计算机称为"裸机",无法完成任何工作.一般软 ...
- Serverless 如何应对 K8s 在离线场景下的资源供给诉求
本文整理自腾讯云云原生产品团队的专家产品经理韩沛在 Techo 开发者大会云原生专题的分享内容--Kubernetes 混部与弹性容器.本次分享主要分为三部分:基于 K8s 的应用混部.提升应用混部效 ...
- Unity优化图解
花了2天把之前学到的一些关于优化的知识全都写了下来,放到一张表里面 https://www.processon.com/mindmap/5cf64f53e4b0bc8329e8112e
- 没搞清楚网络I/O模型?那怎么入门Netty
微信搜索[阿丸笔记],关注Java/MySQL/中间件各系列原创实战笔记,干货满满. 本文是Netty系列笔记第二篇 Netty是网络应用框架,所以从最本质的角度来看,是对网络I/O模型的封装使用. ...
- 【Linux】删除软连接被坑
------------------------------------------------------------------------------------------------- | ...
- Sentry(v20.12.1) K8S 云原生架构探索,JavaScript 性能监控之管理 Transactions
系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...