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运行刚刚创建的容器。