zoukankan      html  css  js  c++  java
  • docker启动Java程序

    创建一个简单的Spring boot web项目

    • idea工具创建Spring boot web项目,因为是测试,一直next就行。



    • 写一个test API,用来访问,服务端口号可以不用改,我本地改成8701。

    • 程序启动,发现程序不是默认的8080端口了,访问:http://localhost:8701/v1/hello

    以上一个简单web项目建好了,下面我们通过docker来运行这个demo项目

    获取镜像,将镜像拉到本地
    docker pull hub.c.163.com/housan993/centos7_jdk8:latest
    
    • 第三步,我们现将demo项目打个jar包,mvn install,为了方便我生成的jar直接从target中拿到项目根目录下了。

    • 第四步,我们在项目下编写一个Dockerfile文件,用来制作demo项目的镜像。
      dockerfile文件里的命令大家执行百度

    dockerfile文件内容:
    FROM hub.c.163.com/housan993/centos7_jdk8:latest
    COPY demo-0.0.1-SNAPSHOT.jar /
    CMD java -jar demo-0.0.1-SNAPSHOT.jar
    
    编写好dockerfile文件后,我们通过docker命令来build一个镜像。docker命令会自动找当前目录下的
    Dockerfile文件(默认的文件名要为Dockerfile),其次要指定目录路径 “.”表示当前目前
    
    docker build -t demo-img .
    
    看到如下日志,镜像就制作成功了。
    

    • 第五步,我们根据制作的镜像来启动我们程序的容器,并将端口(8701)映射到把本机的8701出来。
    docker run -d -p 8701:8701 demo-image
    
    run完之后我们会得到一长串字符,这就是容器的CONTAINER ID。我们docker ps一下看看
    

    我们再看看容器启动的日志,看看我们的java程序有没有运行起来
    docker logs [CONTAINER ID]
    

    由容器的日志,我们发现和我们本地启动一个Java程序的日志一模一样,那么我通过映射出来的端口,再访问下demo程序看看,行不行。
    

    • 我们将demo容器停下,看我们还能访问不?
      stop容器命令:docker stop [CONTAINER ID]
      访问不了了。。。

    • 我们再把我们的demo容器启动
      docker start [CONTAINER ID]
      又可以访问了。至此,我们通过docker 跑java程序的简单使用已经完成。

    展望

    • 上面只是docker 跑java程序的简单使用。我们后续有兴趣的,可以自己将打包,build等命令进行shell脚本的分装,对容器版本进行自动生成,参数变量的动态取值都是可以的。只能说容器话非常好玩,将来自己项目自动化部署也是非常方便的,后面将介绍k8s容器编排工具,更为有趣。
  • 相关阅读:
    一行命令搞定node.js 版本升级
    doesn't contain a valid partition table 解决方法
    debian kill 进程等命令
    FastDFS配置说明(中英文)
    FastDFS问题汇总
    FastDFS常见命令
    FastDFS安装配置手册
    windows 与Linux 互传文件
    FtpClient中文乱码问题解决
    windows 配置host
  • 原文地址:https://www.cnblogs.com/levcon/p/12442662.html
Copyright © 2011-2022 走看看