【Docker】部署启动java项目
公司想用docker部署项目,先写个demo测试一下步骤首先将jar上传到服务器新建一个文件,文件名Dockerfile(注意大小写)DockerfileFROM java:8VOLUME /tmpADD origin-elk-1.0.0-SNAPSHOT.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom"
公司想用docker部署项目,先写个demo测试一下
概述
以下是Docker部署启动Java项目的简要步骤:
创建一个Dockerfile,该文件定义了如何构建您的Java应用程序的Docker镜像。Dockerfile包含以下内容:
使用OpenJDK基础镜像
设置工作目录为/app
将当前目录中的JAR文件复制到镜像中的/app目录
暴露应用程序的端口(如果需要)
定义应用程序的启动命令为运行JAR文件
使用Dockerfile构建Docker镜像。在终端中导航到包含Dockerfile的目录,并运行docker build -t my-java-app .命令。这将创建名为"my-java-app"的Docker镜像。
运行Docker容器以启动Java应用程序。在终端中运行docker run -p 8080:8080 my-java-app命令。这将创建一个名为"my-java-app"的容器,并将容器的8080端口映射到主机的8080端口。如果您的应用程序使用不同的端口,请相应地更改端口号。
现在,您的Java应用程序应该在Docker容器中运行,并通过主机的8080端口访问。
探索
要在Docker中部署和启动Java项目,您需要执行以下步骤:
创建一个Dockerfile,用于定义如何构建您的Java应用程序的Docker镜像。以下是一个示例Dockerfile:
# 使用基础镜像
FROM openjdk:8-jdk-alpine
# 设置工作目录
WORKDIR /app
# 将当前目录中的JAR文件复制到镜像中的/app目录
COPY target/my-java-app.jar /app/my-java-app.jar
# 暴露应用程序的端口(如果需要)
EXPOSE 8080
# 定义应用程序的启动命令
CMD ["java", "-jar", "my-java-app.jar"]
2.使用Dockerfile构建Docker镜像。在终端中导航到包含Dockerfile的目录,并运行以下命令:
docker build -t my-java-app .
这将创建一个名为"my-java-app"的Docker镜像。
3. 运行Docker容器以启动Java应用程序。使用以下命令:
docker run -p 8080:8080 my-java-app
这将创建一个名为"my-java-app"的容器,并将容器的8080端口映射到主机的8080端口。如果您的应用程序使用不同的端口,请相应地更改端口号。
现在,您的Java应用程序应该在Docker容器中运行,并可以通过主机的8080端口访问。请确保将"my-java-app.jar"替换为您的实际Java应用程序的JAR文件名,以及根据您的需求调整端口号和其他设置。
实战
步骤
首先将jar上传到服务器
新建一个文件,文件名Dockerfile (注意大小写)
Dockerfile
FROM java:8
VOLUME /tmp
ADD origin-elk-1.0.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
参数的相关解释:
从docker仓库获取openjdk作为我们项目的容器
- VOLUME指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。效果就是在主机的/usr/local/apps目录下创建了一个临时文件,并连接到容器的/tmp。
项目的docker-demo-0.0.1.jar作为app.jar添加到容器。
ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向/dev/urandom 作为 Entropy Source - from java:8 拉取一个jdk为1.8的docker image
- demo-0.0.1-SNAPSHOT.jar 就是你上传的jar包,替换为jar包的名称
- demo.jar 是你将该jar包重新命名为什么名称,在容器中运行
- expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
- entrypoint 容器启动之后执行的命令,java -jar demo.jar 即启动jar
启动
docker build -t jerome.xin/docker-demo:latest .
结果
成功!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)