【Docker】009-Docker 一键启动合集
文章目录
一、启动 jar
1、命令
docker run \
-itd \
--rm \
-p 8081:8081 \
-v /home/docker/video:/app \
-v /home/docker/video/logs:/logs \
--name video-app \
openjdk:17-jdk \
java -jar /app/app.jar --server.port=8081
2、解释
这条命令用于在Docker容器中运行一个Java应用程序,以下是各参数的解释:
docker run
: 运行一个新的容器。-itd
: 创建一个交互式容器,它会在后台运行,并且可以使用容器ID或名称进行访问。--rm
: 容器停止后立即删除。-p 8080:8080
: 将主机的8080端口映射到容器的8080端口,允许从主机上访问容器中运行的应用程序。-v /home/docker/java:/app
: 将主机的/home/docker/java
目录挂载到容器的/app
目录,使得容器中的Java应用程序可以访问主机上的jar包。-v /home/docker/video/logs:/logs \
挂载容器内根目录的logs目录到/home/docker/video/logs。openjdk:17-jdk
: 基于openjdk:17-jdk镜像创建一个新的容器,该镜像包含了Java 17的开发工具。java -jar /app/app.jar --server.port=8080
: 在容器中运行Java应用程序,将/app/app.jar
作为主要的jar包运行,同时设置应用程序的端口为8080。
总的来说,这条命令的作用是创建一个基于Java 17的Docker容器,其中运行了一个应用程序(通过app.jar提供),并将其映射到主机的8080端口上,使得外部用户可以通过浏览器访问该应用程序。
二、启动 jar 镜像方案
1、Dockerfile
# 该镜像需要依赖的基础镜像
FROM openjdk:17-jdk
# 创建挂载点
VOLUME /app
# 定义工作目录为/app
WORKDIR /app
# 指定docker容器启动时运行jar包,并将端口设置为8080
ENTRYPOINT ["java", "-jar", "-Dserver.port=8080", "app.jar"]
# 指定端口 8080
EXPOSE 8080
# 指定维护者的名字为zibo
LABEL maintainer="zibo"
2、相关命令
# 构建镜像
docker build -t video-app-image .
# 删除镜像
docker rmi video-app-image
# 启动容器
docker run -itd -p 8081:8080 -v /home/zibo/docker/app:/app --name video-app video-app-image
# 删除容器
docker rm video-app
# 查看实时日志
docker logs -f video-app
# 进入容器内部
docker exec -it video-app /bin/bash
# 离开容器
exit
3、备注
- 将 jar 放在 app 目录下;
- 挂载后,日志也会在 app 目录里面;
- Dockerfile 和 app 目录 同级;