Dockerfile之SpringBoot的镜像构建
编写Dockerfile
# 镜像来源的基础 FROM java:8 # 创建镜像容器时,会在Docker容器中创建对应的文件夹,因为SpringBoot内嵌的Tomcat工作路径需要这个文件夹。 VOLUME /tmp # 拷贝宿主机的文件到容器中 COPY /usr/local/xxx.log /root/ # 构建Docker镜像时,传入参数 # 比如:docker build --build-arg JAR_NAME=manage-0.0.1-SNAPSHOT.jar ARG JAR_NAME # 复制jar包名称,简化名称 ADD ${JAR_NAME} app.jar # docker容器中暴露出的端口,用于docker容器启动时,映射端口 # 比如:docker run -di --name 容器名称 -p 8080:8080 镜像名称,这里前面的8080对应宿主机的端口,后面的8080对应docker容器中的端口,意思就是将宿主机的8080端口和docker容器的8080端口映射上去 EXPOSE 8080 # 最后一步 执行命令 # 格式一:ENTRYPOINT exec java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.jar # 格式二:ENTRYPOINT ["java", "${JAVA_OPTS}", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"] ENTRYPOINT exec java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.jar
构建镜像
打镜像并启动
# 构建命令:docker build --build-arg JAR_NAME=manage-0.0.1-SNAPSHOT.jar -t app .
# 启动命令:docker run -di --name app01 -p 8080:8080 app