本教程将通过ubuntu作为基础镜像,配置java运行环境,运行实际SpringBoot项目
首先梳理一下要运行一个java项目我们需要做那些事:
1、准备一台服务器
2、配置java环境
2.1 下载JDK
2.2 将JDK复制到服务端
2.3 解压下载的JDK压缩包
2.4 配置环境变量
2.5 将项目SpringBoot项目jar包复制到指定路径下
2.6 运行jar包
按照以上步骤,我们一步步操作(本人服务器为Ubuntu)
-
下载JDK
https://www.oracle.com/technetwork/java/javase/downloads/index.html
在以上网址下载合适版本的JDK,
-
将下载的JDK复制到服务端
scp /jdk路径/jdk-8u211-linux-x64.tar.gz ubuntu@服务端IP:/编写dockerfile的位置/docker-centos-vim
-
书写dockerfile
# 选择基础镜像 我选择Ubuntu
FROM ubuntu:tag #tag为版本
# 添加维护者信息
LABEL version="1.0" #版本
LABEL description="this is an Image for Springboot application" #基本描述
LABEL maintainer="haoyuehong91@163.com" #维护者信息
# 配置JDK
# 1.将宿主机上的JDK ADD容器内部 为什么用ADD不用COPY呢 因为ADD会解压 还有JDK最好跟dockerfile在同一目录
ADD jdk-8u211-linux-x64.tar.gz /soft/
# 配置环境变量
ENV JAVA_HOME /soft/jdk1.8.0_211
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JAR_HOME}/lib
ENV PATH ${M2_HOME}/bin:$PATH
# 将项目jar包COPY到容器中 用COPY因为不会解压
COPY admin-0.0.1-SNAPSHOT.jar /app/
# 暴露端口
EXPOSE 9000
# 切换工作目录
WORKDIR /app/
# 运行jar包
# ENTRYPOINT ["java","-jar","/app/admin-0.0.1-SNAPSHOT.jar"] 或shell方式
ENTRYPOINT nohub java -jar admin-0.0.1-SNAPSHOT.jar&
-
创建镜像
docker build -t image_name .
千万别忘记后面的 .
image_name 是镜像名称
-
构建容器
docker run -d --name container -p 9000:8000 image_nmae
-d 代表守护进程 如果希望交互式 将-d改为 -it
--name 后面是自定义名称
-p 端口映射 以上代表将容器内的8000端口映射到宿主机9000端口上