天天看点

Docker部署jar包运行

  1. 上传jar到服务器的指定目录
  2. 在该目录下创建Dockerfile 文件
    vim Dockerfile
               
  3. 然后将下面的内容复制到Dockerfile文件中
    FROM java:8
        MAINTAINER bingo
        ADD demo-0.0.1-SNAPSHOT.jar demo.jar
        EXPOSE 8088
        ENTRYPOINT ["java","-jar","demo.jar"]
               

    from java:8 拉取一个jdk为1.8的docker image

    maintainer 作者是dh,指令设置生成镜像的 Author 字段

    demo-0.0.1-SNAPSHOT.jar 就是你上传的jar包,替换为jar包的名称

    demo.jar 是你将该jar包重新命名为什么名称,在容器中运行

    expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行

    entrypoint 容器启动之后执行的命令,java -jar demo.jar 即启动jar

  4. 创建好Dockerfile文件之后,执行命令 构建镜像:

    注意最后的 . 表示 Dockerfile 文件在当前目录下

    Docker部署jar包运行
    my/demo 构建之后镜像名称
  5. 镜像构建成功之后,就可以运行容器了:
    docker run -d --name demo -p 8088:8088 my/demo
               

    docker run -d --restart=always --name demo -p 8088:8088 my/demo 这个表示docker容器在停止或服务器开机之后会自动重新启动 --restart=always

    第一个为服务器8088端口,第二个8088为docker容器端口

  6. 然后docker ps 看看你的容器有没有在运行即可
    Docker部署jar包运行
  7. docker logs --tail 300 -f demo 查看启动日志

    另: 如果docker run 的时候没有加 --restart=always ,然后已经运行的docker容器怎么设置自动重启? 执行下面命令:

    docker update –-restart=always demo 
               
    demo : 你的容器名称
  8. 停止、删除、启动镜像

    容器

    docker ps // 查看所有正在运行容器
     docker stop containerId // containerId 是容器的ID
    
     docker ps -a // 查看所有容器
     docker ps -a -q // 查看所有容器ID
    
     docker start $(docker ps -a -q) // start启动所有停止的容器
     docker stop $(docker ps -a -q) // stop停止所有容器
     docker rm $(docker ps -a -q) // remove删除所有容器
               
    镜像
    删除所有镜像
    docker rmi $(docker images -q)
    根据格式删除所有镜像
    docker rm $(docker ps -qf status=exited)