首页 > 编程语言 >docker 镜像上传下载,及构建java项目镜像心得

docker 镜像上传下载,及构建java项目镜像心得

时间:2025-01-02 20:10:22浏览次数:1  
标签:compose java 上传下载 xxx jar nacos 镜像 docker

docker在服务部署中是比较方便,并且在部署过程中出现问题的几率较低。

本文对基础的docker项目部署做简单介绍

1、安装docker和docker-compose,网上都有自行搜索

2、拉取官方镜像

①、拉官方镜像需要有镜像服务器,没有镜像服务器会报错,好用的镜像服务器都是收费的,不收费的大部分用不了,一般公司都会有自己的私有镜像仓库,可以保存好自己的一些常用的镜像,比如mysql、nginx、mqtt、rabbitmq等。(这里博主是踩过坑的,没有镜像服务器,很操蛋,就是拉不下来

②、拉拉取镜像后加通过docker load -i XXX.tar加载到服务器镜像里。

③、配置Dockerfile如下文件名:Dockerfile

# 使用官方的OpenJDK镜像作为基础镜像
FROM jdk:11 (此处可以是本地镜像)

RUN mkdir /xxx    (包的位置)
EXPOSE 13666

# 复制本地的app.jar文件到镜像中的/app目录下
COPY ./xxx.jar(要打入的jar包) /xxx/xxx.jar 复制到镜像目录

# 设置工作目录为/app
WORKDIR /xxx  (工作目录)

# 配置容器启动时运行java命令运行JAR文件
CMD ["java", "-jar", "xxx.jar"]

④、配置compose启动文件 文件名:docker-compose.yaml

version: "3"

services:
    xxx(工程名称):
        image: xxx:1.3.23 (镜像名称和版本)
        privileged: true
        ports:
            - 13666:13666   (容器内部和外部端口,左边外部,右边内部)
        container_name: xxx  (容器别名)
        #文件挂载地址,尽量不要修改,左侧为宿主机,右侧为容器内部
        volumes:
            - /etc/localtime:/etc/localtime
            - ../jre1.8/:/jre1.8/
            - ./xxx/:/xxx/ (jar包目录)
        restart: always
        env_file:
            - ./xxx.env (外部配置文件)
        networks:
            - sinomis-bridge-network
networks:
  sinomis-bridge-network:
    external:
      name: sinomis-bridge-network

⑤、创建xxx目录与compose文件中的jar包目录一致,然后把jar包放入文件夹内,确保文件夹xxx和docker-compose.yaml、Dockerfile在同一目录,注意:如果拉取不到jdk的镜像,用离线的方式拿到jdk的镜像文件加载到docker 里也是可以的。

⑥、使用构建镜像的命令把项目打包进已准备好的jdk镜像中,命令如下;

docker build -t xxx(镜像名称)

⑦、构建完成后就可以启动了,编写自己的env配置文件,项目会优先引用env配置文件中的配置,示例如下:

#nacos地址
NACOS_CONFIG_SERVER_ADDR=nacos:8848
#nacos用户名(未开启鉴权时,请不要输入)
NACOS_USERNAME=
#nacos用户名(未开启鉴权时,请不要输入)
NACOS_PASSWORD=
#nacos命名空间
NACOS_CONFIG_NAMESPACE=47dfcc84-3d34-4587-9420-3692a222ea32
#nacos命名空间group
NACOS_CONFIG_GROUP=sinomis

⑧、也可以导出为镜像tar包,进行跨服务器部署,到处命令如下:

docker save -o myimage_latest.tar  myimage:latest

命令解释:要导出名为 myimage:latest 的 Docker 镜像到一个名为 myimage_latest.tar 的 tar 文件中

至此,大功告成!

 

标签:compose,java,上传下载,xxx,jar,nacos,镜像,docker
From: https://www.cnblogs.com/bestxyl/p/18642562

相关文章

  • 01java反序列化基础
    java反射的相关操作一些重要的方法获取类的⽅法:forName实例化类对象的⽅法:newInstance获取函数的⽅法:getMethod执⾏函数的⽅法:invoke//eg.反射获取任意类的任意方法并执行importjava.lang.reflect.Method;publicclassReflectionExample{publics......
  • java8--类PrintWriter--文件内容写入--println&print&printf
    PrintWriterout=null;try{out=newPrintWriter("./src/test/myfile.txt","UTF-8");}catch(FileNotFoundExceptionfileNotFoundException){fileNotFoundException.printStackTrace();}catch(UnsupportedEncodingExceptio......
  • Java-数据结构-包装类与泛型
    一、包装类Java的包装类指的是将基本数据类型(如int、float、boolean等)封装成对象的类。Java中的8个基本数据类型(byte、short、int、long、float、double、char、boolean)都有对应的包装类。①基本数据类型对应的包装类基本数据类型包装类byteByteshortShortintIntegerlongLo......
  • docker基本概念,docker镜像管理,docker命令
    docker基本概念镜像管理docker命令一.docker 1.基本概念 (1)docker:能够将程序和环境进行打包的工具 (2)容器:自带独立运行环境的特殊进程 (3)镜像:镜像可以被理解为一个模板,通过这个模板可以实例化出很多容器,包含容器所需的所有文件和配置信息. (4)仓库:用来存储......
  • java包名命名规范
    Java的包名由小写单词组成,包的路径符合所开发的系统模块的定义,以便通过包名可得知其属于哪个模块,从而方便到对应包里找相应的实现类.常规包名为了保障每个JavaPackage命名的唯一性,在Java编程规范中要求开发人员在自己定义的包名前加上唯一的前缀.由于互联网上的域名称是不会......
  • java.lang.NullPointerException
    1、字符串变量未初始化2、接口类型的对象没有用具体的类初始化,比如:Mapmap//会报错Mapmap=newMap();//则不会报错了3、当一个对象的值为空时,你没有判断为空的情况。4、字符串与文字的比较,文字可以是一个字符串或Enum的元素,如下会出现异常Stringstr=null;if(str.equals(“T......
  • JavaScript代码安全性提升:选择和使用JS混淆工具的指南
    https://toolin.cn/jsfuck https://maimai.cn/article/detail?fid=1827257627&efid=382Pa05uQ_i7jAl6rmq5tg 在Web开发中,JavaScript是一种常用的脚本语言,然而,由于其代码容易被他人轻易获取和修改,为了保护JavaScript代码的安全性和版权,我们需要使用JS混淆工具。本文将介绍什......
  • Java框架 —— SpringBoot(二)
    整合JDBC导入依赖:spring-boot-starter-jdbc<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>导入依赖:mysql-connector-j<dependency><g......
  • [密码管理/信息安全] KeePass Java 客户端 : KeePassJava2
    序:续《KeePass:密码管理工具》[密码管理/信息安全]密码管理工具:KeePassvsLastPassvs1Password-博客园/千千寰宇【推荐】概述KeePassJava客户端(KeePassJava2)KeePassJava2是一个用Java编写的API,用于操作KeePass密码数据库KeePassJava2是一个高度灵活且......
  • Java学习笔记06-多态polymorphism
    一、多态1、含义:多态是在继承/实现情况下的一种现象,表现为:对象多态、行为多态多态的具体代码体现:packageorg.example.polymorphism1;publicclassAnimal{publicStringname="动物";publicvoidrun(){System.out.println("动物跑");}......