zoukankan      html  css  js  c++  java
  • 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运行刚刚创建的容器。

  • 相关阅读:
    PAT:1075. PAT Judge (25) AC
    PAT:1010. 一元多项式求导 (25) AC
    PAT:1076. Forwards on Weibo (30) AC
    PAT:1086. Tree Traversals Again (25) AC
    PAT:1020. Tree Traversals (25) AC
    PAT:1051. Pop Sequence (25) AC
    PAT:1063. Set Similarity (25) AC
    PAT:1017. A除以B (20) AC
    C语言指针
    iOS block
  • 原文地址:https://www.cnblogs.com/aixing/p/13327291.html
Copyright © 2011-2022 走看看