美文网首页工具,技巧等
SpringBoot部署项目到Docker仓库

SpringBoot部署项目到Docker仓库

作者: 皮多堡 | 来源:发表于2019-03-15 16:36 被阅读438次

    SpringBoot部署项目到Docker仓库

    1.开启远程控制端口

    • Centos7开启方式:

      vim /lib/systemd/system/docker.service
      找到ExecStart

      ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock  
      
      
    • 重启docker

          启动 systemctl start docker
          守护进程重启  sudo systemctl daemon-reload
          重启docker服务  systemctl restart docker
          重启docker服务  sudo service docker restart
          关闭docker   service docker stop   
          关闭docker  systemctl stop docker
      

    2.创建springboot项目

    • 利用IDEA快速创建springboot项目:


    • 添加测试Controller

    3.配置项目构建信息

    • pom.xml文件中配置如下:
        <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>
                        <!-- docker私服的地址 -->
                        <dockerHost>http://192.168.101.205:2375</dockerHost>
                        <!--镜像名称以及版本号-->
                        <imageName>spring-boot-docker:1.1.1</imageName>
                        <!--依赖的基础镜像-->
                        <baseImage>java</baseImage>
                        <!--Dockerfile的位置 -->
                        <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                        <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
                        <resources>
                            <resource>
                                <targetPath>/</targetPath>
                                <directory>${project.build.directory}</directory>
                                <include>${project.build.finalName}.jar</include>
                            </resource>
                        </resources>
                    </configuration>
                </plugin>
                <!-- Docker maven plugin -->
            </plugins>
        </build>
    

    说明:

    • <dockerHost>http://192.168.101.205:2375</dockerHost> 就是docker服务器地址
    • <imageName>spring-boot-docker:1.1.1</imageName> 构建后的docker image的name与tag
    • <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory> 指定Dockerfile文件位置

    4.编辑Dockerfile

    FROM java:8
    MAINTAINER haopeng 18802953162@163.com
    VOLUME /home/haopeng
    ADD docker_base-0.0.1-SNAPSHOT.jar demo.jar
    RUN bash -c 'touch /app.jar'
    EXPOSE 8080
    ENTRYPOINT ["java", "-jar", "app.jar"]
    
    • 另外项目端口需要改为8080
    • 对Dockerfile里面的内容做一个简单的介绍:
     1.FROM:指明当前镜像继承的基镜像,编译当前镜像时候会自动下载基镜像
     2.MAINTAINER:当前镜像的作者和邮箱,使用空格隔开
     3.VOLUME:挂载目录
     4.ADD:从当前工作目录复制文件到镜像目录中并重新命名
     5.RUN:在当前镜像上执行Linux命令,这里我执行了2个run指令
     6.EXPOSE:监听的端口号
     7.ENTRYPOINT:让容器像一个可执行程序一样运行
    

    5.构建Docker镜像

    • 执行 mvn clean package -DskipTests docker:build

    • 控制台出现 BUILD SUCCESS 标识构建成功

    6.运行docker镜像

    • 连接到docker服务器docker images可以看到刚刚构建的镜像
    • 执行 docker run -d -p 8080:8080 --name docker-app spring-boot-docker:1.1.1
    • 返回容器id表示运行成功
    • 打开浏览器输入宿主机+端口访问项目


    示例demo地址:https://gitee.com/hawawa/docker_base.git

    相关文章

      网友评论

        本文标题:SpringBoot部署项目到Docker仓库

        本文链接:https://www.haomeiwen.com/subject/snrrmqtx.html