Docker 构建和部署 SpringBoot 应用

版权声明:版权属 z_xuewen 所有 ©胖子牛逼 https://blog.csdn.net/z_xuewen/article/details/81251743

前言:使用Docker是好处就是一次构建,多处运行,构建完毕的镜像直接拉取至新的服务器直接运行即可。可以保证运行环境完全一致,避免了环境的细节导致程序运行问题。

想要使用Docker,必须让原本的maven和springboot项目加入Docker支持。其配置可以按如下步骤:

  1. 在 pox.xml 中添加 Docker 镜像名。
    <properties>
        <docker.image.prefix>springboot</docker.image.prefix>
    </properties>

    【注意:后面如果使用docker Hub仓库的话,最好镜像名是docker hub的账户名,不然push和pull都会失败。当然也可以使用命令对镜像名进行增加账户名】

  2. 在 plugins 中添加 Docker 构建插件
    <build>
        <plugins>
            <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>
            <!-- Docker maven plugin -->
        </plugins>
    </build>
  3. 在 src/main 中创建 docker 目录,在 docker 目录下创建 Dockerfile 文件,主要用于构建说明
    FROM openjdk:8-jdk-alpine
    VOLUME /tmp
    ADD spring-boot-docker-1.0.jar app.jar
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

    【注:第一个jar包名需要写本来maven打包出来的jar包名】

以上三步即可让springboot项目支持Docker

接下来是安装Docker环境,方法参考 Centos安装Docker和Maven 。这里就不详细说明了

使用 Docker 构建 springboot 项目

将 整个项目拷贝到具有docker环境的服务器下,进入项目路径根目录

mvn package docker:build

构建成功即可

Docker的使用命令

docker images 【查看构建好的镜像】

docker run -p 8080:8080 -t springboot/spring-boot-docker 【运行镜像】

docker ps 【查看正在运行的镜像,容器列表】

docker stop 容器名 【停住运行镜像】

使用Docker Hub仓库

https://hub.docker.com 注册帐号

docker login 【登录docker hub, push和pull前必须先登录否则没有权限】

登录成功后就可以推送和拉取镜像

docker push zxw/springboot 【推送镜像至云仓库,注:镜像名一定要有帐号信息即帐号名】
若本地镜像无帐号信息则会报如下错误:denied: requested access to the resource is denied
【将本地镜像名增加帐号信息】docker tag springboot/spring-boot-docker zxw/springboot

在新的服务器环境,直接拉取镜像运行即可:

docker pull zxw/springboot
拉取成功参考上面的运行命令即可!

猜你喜欢

转载自blog.csdn.net/z_xuewen/article/details/81251743