精华内容
下载资源
问答
  • 将本地jar包上传至linux服务器 ,同时在同级目录下创建Dockerfile文件 :touch Dockerfile 在dockerfile 文件中添加: FROM java:8 MAINTAINER bingo ADD test.jar demo.jar EXPOSE 8085 ENTRYPOINT [“java”,"-jar...
    1. 本地打包 项目jar包
    2. 将本地jar包上传至linux服务器 ,同时在同级目录下创建Dockerfile文件 :touch Dockerfile
    3. 在dockerfile 文件中添加:
    4. FROM java:8
      MAINTAINER bingo
      ADD test.jar demo.jar
      EXPOSE 8085
      ENTRYPOINT [“java”,"-jar",“demo.jar”]
    5. 在同级目录下 运行:docker build -t demo . 进行docker 镜像文件的创建
    6. 通过docker images 查看镜像是否创建成功
    7. 运行镜像 docker run --name demo -d --restart=always -p 8085:8085 demo
    8. 通过psotman 请求对接接口 结束
    展开全文
  • docker部署运行jar

    千次阅读 2019-10-12 14:47:38
    第一次docker运行java程序使用idea创建一个简单的demo安装虚拟机虚拟机上安装centos系统本地shell工具连接虚拟机安装docker在docker上部署jar 使用idea创建一个简单的demo 安装虚拟机 虚拟机上安装centos系统 ...

    版本: CentOS Linux release 8.0.1905 (Core)

    docker version 19.03.3

    1.上传jar包到服务器上

    这是我上传到服务器上的jar包
    在这里插入图片描述

    2 在当前目录下编写Dockerfile文件

    vi Dockerfile

    #依赖的父镜像
    FROM java:8
    #作者
    MAINTAINER fanzhuoxi
    #jar包添加到镜像中
    ADD firstjob.jar first.jar
    #容器暴露的端口 即jar程序在容器中运行的端口
    EXPOSE 8080
    #容器启动之后要执行的命令
    ENTRYPOINT ["java","-jar","first.jar"]
    

    在这里插入图片描述

    3. 构建镜像

    命令最后有个点

    docker build -t fzx/first .
    

    在这里插入图片描述

    4.查看镜像

    fzx/first 是刚才构建的镜像
    java是父镜像,是从docker官方仓库中下载来的
    在这里插入图片描述

    5.启动容器

    #记得将宿主机的本地时间绑定到容器中去,不然因为容器中时区于服务器的不一致,出现一些问题
    docker run -d --name myfirst -p 8080:8080 --privileged=true -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime fzx/first
    

    在这里插入图片描述

    6. 查看docker进程

    docker ps
    
    

    在这里插入图片描述

    7.查看docker容器 运行日志

    docker logs 容器id(就是docker ps 结果中的CONTAINER ID )

    docker logs 24dc331ca975
    

    在这里插入图片描述

    8.试着访问下,没问题

    在这里插入图片描述

    9.可能存在问题,
    (1)第5步docker run -d --name myfirst -p 8080:8080 fzx/first 执行成功了,执行第6步时没有相应进程。一般是项目代码启动有问题。可以通过 docker ps -a 命令查看所有的容器,可以找到启动的容器,然后通过docker logs 容器id 查看下日志
    (2)启动出现问题,重新上传了jar包后
    要执行以下操作,
    先删除容器 docker rm 容器id
    再删除镜像 docker rmi 镜像id (镜像id通过docker images查看)
    然后重新构建镜像并启动容器(参照从第3步开始)
    OK,结束!

    上一篇 centos安装docker
    相关操作:
    idea打jar包

    展开全文
  • docker意为码头工人的意思,小型的虚拟机,我的理解就是docker就像是一个工具箱,我们部署项目时需要的环境不用去下载安装,在docker上可以拿来即用,省去了一大部分操作,且不同的项目放在他们相对应的docker容器上...

    1.docker介绍

    docker意为码头工人的意思,小型的虚拟机,我的理解就是docker就像是一个工具箱,我们部署项目时需要的环境不用去下载安装,在docker上可以拿来即用,省去了一大部分操作,且不同的项目放在他们相对应的docker容器上互不干扰,通俗点就是,在自己电脑上安装了jdk,mysql,nginx。也就是所谓的环境,然后部署到服务器上,服务器也要安装相同的jdk,mysql,nginx,这样一来不就有点浪费时间嘛,而且有个问题,就是说我的项目做到后面需要添加新的东西,比如redis,那我又要去服务器上也安装一个redis,然后我可能要Kafka,又得去服务器上安装kafka,而且之间的安装方式还不太一样,且万一以后这个项目后面的编写改成c语言了呢,所以docker的存在就是解决了这些问题,在本地docker上将需要的环境写入镜像文件上传到服务器,服务器docker会根据镜像文件去仓库拉取

    2.docker安装

    在菜鸟上学习的

    https://www.runoob.com/docker/centos-docker-install.html

    笔者的是CentOS 8系统

    3.安装jdk

    docker pull openjdk:slim-buster

    附:拉取镜像教程(镜像指的就是docker拉取或创建的对象,镜像可以自己创建也可以拉取docker仓库里面的,镜像用docker images查询)

    docker仓库:https://hub.docker.com/

     4.运行jar包

    在存放jar包的目录下面新建dockerfile文件,dockerfile是构建镜像的文件,里面包含了描述了构建镜像的指令和说明

    我是在usr/local/java/下面存放的jar包

    cd usr/local/java

    touch dockerfile

    vim dockerfile

    dockerfile存放以下内容:

    FROM openjdk:slim-buster
    VOLUME /tmp
    ADD article.jar app.jar
    ENTRYPOINT ["java","-jar","-Dspring.profiles.active=pro","/app.jar"]
    

    from :定制的镜像基于from指定的镜像,这里from指定了我们刚刚拉取的jdk镜像openjdk:slim-buster,所以jdk就相当于这个镜像(可以说是服务器了)的环境

    volume:定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。

    add:将左边的jar包放到docker里面并取名为app.jar article.jar 为运行的jar包路径即名称,因为我放在当前目录下的,所以直接写名字就行了,app.jar为将article.jar放在镜像里面的jar名称

    entrypoint:运行的命令,一个命令占一个位置

    编译:docker build -t article .

    编译是将dockerfile编译成一个docker镜像,-t(镜像的名字和标签,可以是name,也可以是name:tag,可以指定多个标签),后面的article就是我为这个镜像取得一个名字

    查看镜像列表

    docker images

    运行结果

     运行: docker run -d --restart=always --name article -v /usr/local/logs:/home/logs -p 9022:9022 article

    此时运行这个镜像我们叫docker容器

    指令描述:

    -d:后台运行容器,并返回id

    --restart:指定重启后自动运行容器

    --name:指定容器名字

    -v:绑定一个卷

    -p:指定端口映射,格式为:主机(宿主)端口:容器端口(这里最好两个都写jar包中指定的一样的端口(前提是jar包是spring boot框架,且内嵌了tomcat))

    后面这个article指的是容器依赖的镜像

    回车运行后会返回一个容器id

    查看容器列表

    输入docker ps

    返回:

     查看输出内容(日志)

    输入 docker  logs 47e87a02057c (容器id)

    返回

     输出的即是jar包运行的日志

    5.访问

    curl:http://120.77.183.71:9022/queryHotArticles (这个是在linux服务器上输入的命令)

    输出:

     在postman测试也是没问题的

    6.关闭容器

    docker stop 47e87a02057c (容器id)

    7.问题

    总的来说没啥大问题,这里就记录以下我遇到的问题

     1.报了一个容器名已使用的错误

    Error response from daemon: Conflict. 
    The container name "/article" is already in use by container "8961a3ee723a66d08e5631f5d46fbc73f61fad2d5f2ea4095d0c8b6a20b723c0". 
    You have to remove (or rename) that container to be able to reuse that name. 
    See 'docker run --help'.

    意思是说容器article已被容器id为8961a3ee723a66d08e5631f5d46fbc73f61fad2d5f2ea4095d0c8b6a20b723c0所使用

    当时我在想我已经关闭了容器,怎么还告诉我名字被容器占用,后面才想到,关闭并不等于删除,也就是说容器里面还有这个容器id

    查看容器列表

    docker ps -a

    删除容器

    docker rm 47e87a02057c (容器id)

    2.运行jar查看日志报:Error: Unable to access jarfile article.jar

    这个乍一看是权限不足造成的,所以一开始就是往这个方向里面找问题的

    然后在启动容器的命令上加了--privileged=true这么一段

    即  docker run -d --restart=always --name article -v /usr/local/logs:/home/logs -p 9022:9022 article --privileged=true

    但还是不行,于是往下一个方向思考,于是想到了会不会是selinux霸道安全机制造成的

    输入命令:getenforce

    输出:Disabled
    表示selinux已被禁用,我当时就懵了,都被禁用了肯定不是这个问题,然后我就重新看了以下,发现了问题

    问题在于dockerfile这个文件上

    一开始我是这样写的:

    FROM openjdk:slim-buster
    VOLUME /tmp
    ENTRYPOINT ["java","-jar","-Dspring.profiles.active=pro","article.jar"]

    没有加add这个描述行,所以docker压根就找不到article.jar这个jar包

    3.无法通过公网ip访问接口

    这个一开始就想到的会不会是服务器没有开放这个端口,因为我是用的是阿里云的服务器,所以就去阿里云里面看看有没有设置,但一开始没看到,然后就想着要不手动关闭防火墙吧

    Linux操作防火墙命令:https://zhuanlan.zhihu.com/p/161196711

    输入:systemctl status firewalld

    报:
    firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
       Active: inactive (dead)

    防火墙压根就没开,就很懵逼,然后还是默默的去网上百度去了,然后发现果然还是要去阿里云控制台里面手动开启开放端口

    阿里云服务器开启开放端口示例:https://developer.aliyun.com/article/350766

     

    ok,完成,希望对您有用,如果有啥问题留下评论我会第一时间回复 

    展开全文
  • linux下安装docker并部署运行jar

    千次阅读 2020-08-11 15:19:25
    linux下安装docker并部署运行jarlinux系统安装并启动docker服务1、安装需要的软件包2、设置yum源3、启用 edge 和 testing 镜像仓库(可选)4、安装Docker最新版本5、启动Docker6、验证安装是否成功Docker部署运行jar...

    linux系统安装并启动docker服务

    Docker提供了两个版本:社区版 (CE) 和企业版 (EE)。
    Docker 社区版 (CE) 是开发人员和小型团队开始使用 Docker 并尝试使用基于容器的应用的理想之选,所以这里我们来说一下Docker社区版的安装。
    这里我们说的是在CentOS7版本上安装docker。

    1、安装需要的软件包

    yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
    linux命令为:

    yum install -y yum-utils device-mapper-persistent-data lvm2
    

    2、设置yum源

    命令为:

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    

    3、启用 edge 和 testing 镜像仓库(可选)

    命令分别为:

    yum-config-manager --enable docker-ce-edge
    
    yum-config-manager --enable docker-ce-testing
    

    4、安装Docker最新版本

    命令为:

    yum install -y docker-ce
    

    5、启动Docker

    命令为:

    systemctl start docker
    

    6、验证安装是否成功

    命令:docker version
    在这里插入图片描述
    如图,有client和service两部分表示docker安装启动都成功了。

    Docker部署运行jar

    一、创建docker镜像

    1、创建Dockerfile文件

    文件内容如下:

    FROM java:8
    ADD easyexcel-0.0.1-SNAPSHOT.jar /easyexcel.jar
    EXPOSE 8060
    CMD java -Djava.security.egd=file:/dev/./urandom -jar /easyexcel.jar
    

    文件内容解析:
    FROM java:8 拉取一个jdk为1.8的docker image
    easyexcel-0.0.1-SNAPSHOT.jar 就是你上传的jar包的名称
    easyexcel.jar 是你将该jar包重新命名为什么名称,在容器中运行
    EXPOSE 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
    CMD 就是容器启动后执行的命令。

    2、构建Docker镜像

    命令:docker build -t demo .
    注意,命令的最后有一个“.”,表示 Dockerfile 文件在当前目录下。
    demo为构建的Docker镜像名称。

    二、运行Docker容器

    1、运行命令

    命令为:

    docker run -e TZ="Asia/Shanghai" -d --restart=always --name demo -p 8060:8060 -v /home/demo/easyExcel:/home/demo/easyExcel demo
    

    2、命令解析

    1、docker run 指运行docker容器
    2、-e TZ=“Asia/Shanghai” 设置容器运行时的默认时区,这里设置为上海时区。
    3、-d 指容器在后台运行
    4、–restart=always 指Docker重启时,容器自动运行
    5、–name demo 指Docker容器的名称
    6、-p 8060:8060 用来指定宿主机和容器的端口映射,这里的意思是将宿主机的8060端口映射容器的8060端口
    7、-v /home/demo/easyExcel:/home/demo/easyExcel
    这里指docker挂载宿主机目录的参数指令,因为jar运行时会有Log日志输出,如果在docker容器里运行,则看不到输出的Log日志文件,需要将对应的日志目录挂载到宿主机,即将文件同步到宿主机上,这样就能看到生成的Log文件。
    首先,springboot配置文件里会指定日志输出目录,如下图:
    在这里插入图片描述
    在这里插入图片描述
    注意,这里设置的Log目录不能为相对路径。

    然后,我们可以在服务器上创建相同路径的目录,如下图:
    在这里插入图片描述
    在对应的/home/demo/下创建easyExcel目录。
    然后使用-v /home/demo/easyExcel:/home/demo/easyExcel来挂载Log目录文件。
    8、demo 指要运行的镜像

    三、进入运行中的docker容器,并查看jar的gc信息

    1、查看运行的docker容器

    命令:docker ps
    在这里插入图片描述
    上图中圈中的就是容器id

    2、进入指定的docker容器

    命令:sudo docker exec -it [容器id] /bin/bash

    3、查找在docker容器中运行的jar包

    命令:ps -ef | grep java
    在这里插入图片描述

    4、查看指定pid的jar包gc信息

    命令:jstat -gc [pid] [时间间隔,毫秒为单位]

    Docker使用阿里云镜像仓库上传拉取并运行

    一、创建阿里云镜像仓库

    在这里插入图片描述
    如上图,选择容器镜像服务。然后创建镜像仓库。
    在这里插入图片描述
    然后点击访问凭证,设置固定密码,如下图:
    在这里插入图片描述
    然后在linux服务器上设置镜像加速器,如下图:
    在这里插入图片描述

    二、Docker将本地镜像push到阿里镜像仓库

    1、构建本地镜像

    同上面的构建Docker镜像一样,命令:

    docker build -t registry.cn-hangzhou.aliyuncs.com/hezhan/demo:v1.0 .
    

    注意,这里的镜像名称为阿里镜像仓库地址+版本,如下图:
    在这里插入图片描述
    上图中的仓库地址按情况选择复制。
    命令解析:
    registry.cn-hangzhou.aliyuncs.com/hezhan/demo为阿里镜像仓库地址;
    v1.0为版本,可以自定义,不传则默认为latest
    中间用【:】连接。

    2、将本地镜像push到阿里镜像仓库

    在push之前,要先登录到阿里镜像仓库,
    登录命令为:

    docker login --username=书生今天不吃饭a registry.cn-hangzhou.aliyuncs.com
    

    这里的username的值为阿里云账号全名,具体的操作说明可以在阿里云看到,具体在阿里云容器镜像服务,点击具体的镜像命名空间,如下图:
    在这里插入图片描述
    在服务器上使用docker login登录成功后,会在/root/.docker下生成一个文件config.json,注意【.docker】为隐藏文件目录,可以在root目录下通过ls -a看到。
    如果其他服务器也想通过同样的账号密码登录此阿里镜像仓库,则可以将此【config.json】文件复制上传到对应的服务器,则可以免登录即可push、pull镜像。
    然后再push到阿里镜像仓库

    命令为:

    docker push registry.cn-hangzhou.aliyuncs.com/hezhan/demo:v1.0
    

    三、pull阿里镜像仓库

    命令为:

    docker pull registry.cn-hangzhou.aliyuncs.com/hezhan/demo:v1.0
    

    具体操作说明也可在阿里云上看到,如下图:
    在这里插入图片描述

    四、运行docker从阿里镜像pull下来的镜像

    运行同上面的运行Docker容器一样。只不过将镜像名称换为:
    registry.cn-hangzhou.aliyuncs.com/hezhan/demo:v1.0
    即镜像仓库地址+指定的版本,中间用【:】连接

    展开全文
  • Docker -- 05 -- Docker运行jar

    千次阅读 2019-07-06 14:29:39
    Docker 上安装了 JDK 之后,我们就可以运行自己的 jar 包了,具体步骤如下 一、搭建项目 这里我用 IDEA 搭建了一个 SpringBoot 项目,SpringBoot 的版本是 2.1.1.RELEASE application.yml server: port: 9998...
  • 叙:上两篇分别讲了什么是DockerLinux系统中安装Docker,这一片姑且算是实战一把吧,在Ddocker容器中部署Java项目,其实就是把jar项目打包称jar然后在Docker中部署运行一下,下面是正文; Docker入门(三)——...
  • 1. 准备工作 将jar包放在文件夹下,这里以app为例,jar包名称为ac-contact-...执行命令 vim dockerfile-contact 内容如下 FROM jdk11:2019-10-12 COPY ac-contact-0.0.1-SNAPSHOT.jar /ac-contact-0.0.1-SNAPSHOT....
  • Step 3/4 : ADD dockerjava.jar /app.jar ---> a63205b5b6cb Removing intermediate container f4c3c891e76c Step 4/4 : CMD java -jar /app.jar ---> Running in 2a2540964e7f ---> b6bec8602898 Removing ...
  • IDEA集成docker一键部署jar一、开启服务器的docker远程访问功能1.1、编辑vim /lib/systemd/system/docker.service1.2、重启daemon1.3、重启docker服务1.4、检查防火墙是否开启了2375端口,并开启二、给IDEA安装...
  • docker上部署jar

    2020-01-13 09:32:21
    我使用的Idea、gradle,不管你用什么都一样 gradle.build不需要改变 gradle打包,如果你使用的maven也有对应的打包方式 打完包之后,从项目里面复制出来,进入终端命令...修改jar名,名为hello,复制jar包到linux...
  • 1、打包微服务成单独的jar包 首先将自己的项目跳过test打包成jar,并在自己本地先用java -jar xxx.jar启动下,看是否可以启动。 随后将自己的jar包同级目录创建一个Dockerfile文件,并用notepad打开 文件无后缀。 ...
  • Docker 部署JAVA jar

    2020-12-16 20:18:17
    第一步:安装docker镜像 到 linux 上 第二步:把开发完的项目打包 第三步:配置Dockerfile文件(注意没有后缀) 配置如下: ### 在容器中运行需要的JDK FROM gmaslowski/jre:8 ### 在角jdk 中创建相应的...
  • 1、 已经安装了DockerLinux服务器 2、 实时组件项目的jar包(举例使用test-project.jar) 3、 可以运行jar包的环境 一、 运行Redis镜像 1、运行镜像 执行docker run –name redis-6379 -p 6379:6379 –d –...
  • 查看了好多Docker 部署jar项目的博客,大多都是在Linux环境下的,需要安装vm,c7 等,配置环境就要半天时间,有的小伙伴都没有到达Docker 部署环节就知难而退了,本篇讲述的是在win10 下 安装docker,通过idea配置等...
  • linux配置jdk环境 略 linux配置mvn环境 ...执行命令后,会从默认的官方库获取镜像:https://hub.docker.com/r/ascdc/jdk8 docker images 可查看所有镜像 构建项目镜像过程 上传自己的项目jar包 编...
  • 拉取nacos镜像 docker pull nacos/nacos-server 新建容器
  • Docker之部署jar

    2019-09-30 14:33:51
    linux新建一个这样的目录用来存放jar和dockerfile/usr/local/apps/docker 新建一个service1文件夹并上传一个待部署的jar包service1-1.0.0.jar和dockerfile文件 dockerfile文件内容如下 FROM java...
  • docker是一个开源的应用容器引擎,可以让开发者将应用以及依赖包打包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker最大一个优势...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,136
精华内容 5,654
关键字:

docker直接运行jarlinux

linux 订阅