V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bfqymmt
V2EX  ›  Docker

docker 如何快速更换 jar 包

  •  
  •   bfqymmt · 2020-03-30 15:45:01 +08:00 · 4597 次点击
    这是一个创建于 1459 天前的主题,其中的信息可能已经有所发展或是发生改变。
    采用 Dockerfile 方式部署了项目,先构建镜像,再通过镜像生成 docker 。

    如果要更新 jar 文件,现在的操作是停止删除 docker,再删除镜像,重新构建镜像,再生成 docker 。

    操作有一些繁琐。小项目,百度了资料,都没有找到快速更换 jar 的方式,请教一下如何快速更换 jar 或其他比较敏捷的方式呢?
    8 条回复    2020-03-30 21:03:40 +08:00
    monkeyWie
        1
    monkeyWie  
       2020-03-30 15:52:59 +08:00
    为啥要停止删除 docker,一般在前面跑一个 nginx 负载均衡,两个容器做滚动升级就好了
    Rysle
        2
    Rysle  
       2020-03-30 16:00:33 +08:00
    用 volume 替换不行吗?
    docker run -v <jar file path in host>:<jar file path in container>
    anubu
        3
    anubu  
       2020-03-30 16:34:34 +08:00
    搜索一下 docker-compose up -d 命令,一条命令就可以实现编译构建、部署更新。
    tomczhen
        4
    tomczhen  
       2020-03-30 16:37:54 +08:00 via Android
    小项目直接本机跑不就完了。

    既想学大项目那套高大上,又觉得麻烦,谁也救不了。
    hcymk2
        5
    hcymk2  
       2020-03-30 16:38:41 +08:00
    java 一般替换 jar 也要重启吧
    Yourshell
        6
    Yourshell  
       2020-03-30 16:38:42 +08:00
    rebuild 也不麻烦啊。可以使用 volume
    wangxiaoaer
        7
    wangxiaoaer  
       2020-03-30 16:40:20 +08:00
    看不懂你的骚操作。
    Imcoding
        8
    Imcoding  
       2020-03-30 21:03:40 +08:00
    1. 构建一个带 Java 环境的镜像
    2. 编写 docker-compose.xml 启动容器
    这个文件配置 volume 等并配置初始命令(启动 jar )
    3. 修改了 jar 后直接将 jar 拷贝到 volume 配置的主机路径就好了( jar 名要相同),重启容器

    按你的做法相当于把项目搞到了镜像里面了,要更改项目除了重新构建镜像还可以使用 docker cp 命令,把新的 jar 复制到容器内,替换到容器内的 jar,但是这样太麻烦了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1211 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:11 · PVG 02:11 · LAX 11:11 · JFK 14:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.