springboot工程Dockerfile打包

首先要打开docker主机,开放远程端口

在打包工程的电脑上配置环境变量

DOCKER_HOST=tcp://192.168.1.119:2375

打开cmd窗口,确定环境变量配置生效:输入 echo %DOCKER_HOST%,会输出 tcp://192.168.1.119:2375
查看环境变量

创建Dockerfile文件,要跟pom文件同级目录

# Docker image for springboot application
# VERSION 0.0.1
# Author: Hansson

### 基础镜像,使用alpine操作系统,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9

#作者
MAINTAINER Hansson <[email protected]>

#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8

#声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp

#暴露8080端口
EXPOSE 8080

#定义参数
#ARG JAR_FILE
#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
#ADD ${JAR_FILE} demo.jar
ADD target/demo-0.0.1-SNAPSHOT.jar demo.jar

#touch命令的作用是修改这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
#RUN bash -c 'touch /demo.jar'

#启动容器时的进程
ENTRYPOINT ["java","-Dfile.encoding=UTF8","-Duser.timezone=GMT+08","-jar","demo.jar"]

用IDEA的Docker插件将应用构建成镜像并在远程Docker上运行

这里注意:Dockerfile中的 ADD 命令后面jar包位置不能用JAR_FILE,容器运行会出错:Error: Invalid or corrupt jarfile demo.jar

连接远程Docker服务

springboot工程Dockerfile打包_第1张图片

创建Dockerfile配置

springboot工程Dockerfile打包_第2张图片

Dockerfile详细配置

springboot工程Dockerfile打包_第3张图片

执行的打包命令
docker build -t hanssondemo:v0.0.1 . && docker run -p 1010:8080 --name springbootdemo hanssondemo:v0.0.1 
查看镜像

查看镜像

查看容器

查看容器

查看启动应用

springboot工程Dockerfile打包_第4张图片

使用maven编译打包镜像

确定DOCKER_HOST环境变量配置生效
echo %DOCKER_HOST%
set DOCKER_HOST

springboot工程Dockerfile打包_第5张图片

编译项目并构建docker镜像,编译结束自动推送镜像到docker主机中
mvn clean package dockerfile:build -Dmaven.test.skip=true
查看镜像

springboot工程Dockerfile打包_第6张图片

运行容器
docker run -itd --name springdemo -p 2020:8080 hansson/demo:0.0.1-SNAPSHOT /bin/bash
查看运行容器

查看运行容器

查看启动应用

springboot工程Dockerfile打包_第7张图片

参考:

SpringBoot之Dockerfile应用
IDEA的Docker插件实战(Dockerfile篇)

你可能感兴趣的:(学习,Docker)