一、前提

  • 安装Docker
  • 熟悉Docker常用的命令

二、SpringBoot项目

  • 编写一个简单的springboot项目。

  • pom.xml文件

    properties 中添加
    <properties>
            <java.version>1.8</java.version>
    
            <!--properties节点中设置docker镜像的前缀“springboot”-->
            <docker.image.prefix>springboot</docker.image.prefix>
    </properties>
    
    build 中添加 
    			<!-- 添加 Docker 构建插件:-->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <!-- Docker maven plugin -->
                <plugin>
                    <groupId>com.spotify</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                        <dockerDirectory>src/main/docker</dockerDirectory>
                        <resources>
                            <resource>
                                <targetPath>/</targetPath>
                                <directory>${project.build.directory}</directory>
                                <include>${project.build.finalName}.jar</include>
                            </resource>
                        </resources>
                    </configuration>
                </plugin>
    
    
  • 启动类,Application

      @GetMapping("/")
        public String index() {
            return "你好,docker";
        }
    
    

  • 测试项目是否创建成功

    http://localhost:8080/

  • 成功,将springboot项目打jar包

三、创建Dockerfile 文件

  • vim Dockerfile 创建文件

  • 内容

    FROM openjdk:8-jdk-alpine
    VOLUME /tmp
    ADD dockerdemo01-0.0.1-SNAPSHOT.jar app.jar
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    
    FROM ,表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载
    VOLUME ,VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
    ADD ,拷贝文件并且重命名
    ENTRYPOINT ,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为ENTRYPOINT
    
    

四、构建项目镜像

  • 将SpringBoot jar 包移到Dockerfile同一级目录下

  • docker build -t myspringboot . 通过dockerfile构建镜像

  • docker images 查询镜像

  • docker run -it -p 8080:8080 myspringboot 运行该镜像

  • 验证是否成功

    根据linux主机IP地址 访问

五、构建其他的DockerFile

  • 以centos为基本镜像,添加jdk,添加springboot jar 包
FROM centos

VOLUME /tmp
ADD dockerdemo01-0.0.1-SNAPSHOT.jar app.jar

#把当前目录下的jdk文件夹添加到镜像
ADD jdk1.8.0_121 jdk1.8.0_121

#添加环境变量
ENV JAVA_HOME /jdk1.8.0_121
ENV PATH $PATH:$JAVA_HOME/bin

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

有任何问题,可以给我留言、评论

posted on 2019-01-10 10:44  掘金杨  阅读(165)  评论(0)    收藏  举报