前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在IDEA中使用Docker部署SpringBoot项目

在IDEA中使用Docker部署SpringBoot项目

作者头像
CBeann
发布2023-12-25 18:02:43
2540
发布2023-12-25 18:02:43
举报
文章被收录于专栏:CBeann的博客CBeann的博客

Docker安装及使用

IDEA连接Docker

安装docker插件

配置docker仓库URL

搭建项目

代码下载

Demooo/springboot-demo-docker at master · cbeann/Demooo · GitHub

创建SpringBoot项目并且创建一个接口

代码语言:javascript
复制
@GetMapping("/hello")
  public String hello() {
    String s = LocalDateTime.now().toString();
    return s;
  }

修改pom.xml

代码语言:javascript
复制
<properties>
        <!--设置时间戳-->
        <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
        <!--设置docker image 前缀-->
        <docker.prefix>mydocker</docker.prefix>
    </properties>


<!-- docker插件 -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <!--将插件绑定在某个phase执行-->
                <executions>
                    <execution>
                        <id>build-image</id>
                        <!--将插件绑定在package这个phase上。也就是说,用户只需执行mvn package ,就会自动执行mvn docker:build-->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>

                <configuration>
                    <!--设置镜像名称-->
                    <imageName>${docker.prefix}/${project.artifactId}_${maven.build.timestamp}</imageName>
                    <!-- docker远程服务器地址 -->
                    <dockerHost>http://127.0.0.1:2375</dockerHost>
                    <!--设置目录,该目录下放dockerfike-->
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

编写dockerfile

在/src/main/docker目录下,该位置在pom中已经设置

代码语言:javascript
复制
#指定基础镜像,在其上进行定制
FROM java:8

#维护者信息
MAINTAINER cbeann <cbeann@163.com>

#这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层
VOLUME /tmp

#复制上下文目录下的target/springboot-demo-docker-0.0.1-SNAPSHOT.jar 到容器里
COPY springboot-demo-docker-0.0.1-SNAPSHOT.jar demo-1.0.0.jar


#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8080

#指定容器启动程序及参数   <ENTRYPOINT> "<CMD>"
ENTRYPOINT ["java","-jar","demo-1.0.0.jar"]
运行maven的package

此处已经在pom中把bulid image与mvn package做了关联,即运行package也运行构建镜像命令

运行结果

遇到的坑

IEDA连接远程docker仓库失败

0)确保2375端口开放

1)修改/usr/lib/systemd/system/docker.service

2)修改ExecStart行为下面内容

代码语言:javascript
复制
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

3)加载docker守护线程

代码语言:javascript
复制
systemctl daemon-reload 

4)重启docker

代码语言:javascript
复制
systemctl restart docker

参考:docker 开启2375端口,提供外部访问docker_H的博客-CSDN博客_2375

注意:在内网中开放2375端口或者测试的时候开放2375端口,其它时候必须关闭,必须关闭,必须关闭,为了保证服务器的安全

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker安装及使用
  • IDEA连接Docker
  • 搭建项目
    • 代码下载
      • 创建SpringBoot项目并且创建一个接口
        • 修改pom.xml
          • 编写dockerfile
            • 运行maven的package
            • 运行结果
            • IEDA连接远程docker仓库失败
        • 遇到的坑
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档