在IDEA中使用Docker部署SpringBoot项目

简介: 在IDEA中使用Docker部署SpringBoot项目

IDEA连接Docker


安装docker插件


1.png


配置docker仓库URL


2.png


搭建项目


代码下载


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


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


@GetMapping("/hello")
  public String hello() {
    String s = LocalDateTime.now().toString();
    return s;
  }


修改pom.xml


<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中已经设置


#指定基础镜像,在其上进行定制
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也运行构建镜像命令


3.png


运行结果


4.png


5.png


遇到的坑


IEDA连接远程docker仓库失败


0)确保2375端口开放

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

2)修改ExecStart行为下面内容


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


3)加载docker守护线程


systemctl daemon-reload


4)重启docker


systemctl restart docker


目录
相关文章
|
20天前
|
存储 测试技术 Linux
【Docker项目实战】使用Docker部署bender个人仪表板
【4月更文挑战第2天】使用Docker部署bender个人仪表板
32 1
|
29天前
|
存储 机器学习/深度学习 中间件
快速上手 Elasticsearch:Docker Compose 部署详解
本文介绍了如何使用Docker Compose快速搭建Elasticsearch学习环境。Elasticsearch是一款用于实时搜索和分析的分布式中间件,适用于多种场景,如搜索、日志分析、机器学习等。首先,创建docker网络,拉取最新版8.12.2镜像。接着,编写docker-compose.yml文件,配置单节点集群,设置端口映射、内存限制及数据卷挂载。然后,创建并配置数据卷目录,允许远程访问和跨域。最后,启动服务并验证,通过浏览器访问确认服务运行正常。本文为初学者提供了一个简便的Elasticsearch部署方法。
160 4
快速上手 Elasticsearch:Docker Compose 部署详解
|
21天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
83 0
|
3天前
|
存储 测试技术 文件存储
【Docker项目实战】使用Docker部署Sun-Panel导航面板
【4月更文挑战第19天】使用Docker部署Sun-Panel导航面板
54 7
|
6天前
|
测试技术 Linux 网络安全
【好玩的开源项目】使用Docker部署SyncTV视频同步和共享平台
【4月更文挑战第16天】使用Docker部署SyncTV视频同步和共享平台
43 1
|
10天前
|
测试技术 Linux 数据安全/隐私保护
【Docker项目实战】使用Docker部署Seatsurfing预订座位系统
【4月更文挑战第12天】使用Docker部署Seatsurfing预订座位系统
35 3
|
13天前
|
JavaScript 前端开发 Docker
全栈开发实战:结合Python、Vue和Docker进行部署
【4月更文挑战第10天】本文介绍了如何使用Python、Vue.js和Docker进行全栈开发和部署。Python搭配Flask创建后端API,Vue.js构建前端界面,Docker负责应用的容器化部署。通过编写Dockerfile,将Python应用构建成Docker镜像并运行,前端部分使用Vue CLI创建项目并与后端交互。最后,通过Nginx和另一个Dockerfile部署前端应用。这种组合提升了开发效率,保证了应用的可维护性和扩展性,适合不同规模的企业使用。
|
13天前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
21 0
|
13天前
|
存储 Linux Shell
centos 部署docker容器 安装 、基本使用方法(一)
centos 部署docker容器 安装 、基本使用方法(一)
24 0
|
17天前
|
测试技术 Linux 数据安全/隐私保护
【Docker项目实战】使用Docker部署PicoShare共享文件平台
【4月更文挑战第5天】使用Docker部署PicoShare共享文件平台
49 4