使用IDEA操作Docker实现一键将springboot项目部署到Linux上

Linux配置和IDEA安装插件连接到docker

Linux 配置

配置docker远程链接端口
首先编辑我们服务器上的docker文件

vi /usr/lib/systemd/system/docker.service

修改以ExecStart开头的行(centos 7):

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

如果是centos 7以下的直接添加-H tcp://0.0.0.0:2375 即可

ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

在这里插入图片描述
修改后保存文件,然后重启docker

systemctl daemon-reload
service docker restart

测试是否正常
这里的2375是之前配置的端口

curl http://localhost:2375/version

看到返回信息基本上就没有问题了
在这里插入图片描述
然后开启端口,或者关闭防火墙,二者选其一即可

# 开端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent  
# 关防火墙
chkconfig iptables off

然后打开浏览器 访问 你的虚拟机ip:2375/version
在这里插入图片描述

IDEA安装插件连接到docker

首先下载docker插件,好像idea2019自带了docker插件
在这里插入图片描述
下载的话在Marketplace种搜索Docker安装即可

然后配置docker地址,在你的File | Settings | Build, Execution, Deployment | Docker
在这里插入图片描述
配置完成链接之后,出现了框中的内容即可

链接成功之后会列出容器和镜像
在这里插入图片描述

使用docker部署springboot 项目

说明:这里我就部署一个eureka作为部署 springboot项目的演示吧,其他springboot项目同理

首先在你的springboot项目中的根目录下添加一个docker文件夹并创建Dockerfile文件
在这里插入图片描述
文件内容为

#这是基础镜像
FROM openjdk:8-jdk-alpine
#复制jar包到镜像中,并且将名字改成 app.jar
ADD *.jar app.jar
# 在容器启动的时候运行命里,来启动我们的项目 (这其实就是一段Linux命令)
# 这个启动命里根据你的实际情况更改
ENTRYPOINT ["java","-jar","/app.jar", "--spring.profiles.active=eureka2001"]

然后增加配置
在这里插入图片描述
在这里插入图片描述
配置内容为
在这里插入图片描述
命里解释

  • Image tag : 指定镜像名称和tag,镜像名称为 docker-eureka2001,tag为v1.0

  • Bind ports : 绑定宿主机端口到容器内部端口。格式为[宿主机端口]:[容器内部端口]

  • Bind mounts : 将宿主机目录挂到到容器内部目录中。格式为[宿主机目录]:[容器内部目录]。这个springboot项目会将日志打印在容器 /home/developer/app/logs/ 目录下,将宿主机目录挂载到容器内部目录后,那么日志就会持久化容器外部的宿主机目录中。

修改pom文件将build部分修改为如下


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--添加自己的启动类路径!-->
                    <mainClass>com.cpc.microserviceeurekaserver.MicroserviceEurekaServerApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <!--可以把依赖的包都打包到生成的Jar包中-->
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <configuration>
                            <tasks>
                               <!-- 这是将 jar包copy 到 docker目录下-->
                                <copy todir="src/main/docker" file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

然后打包maven
在这里插入图片描述
运行
在这里插入图片描述
在这里插入图片描述

先pull基础镜像,然后再打包镜像,并将镜像部署到远程docker运行,这里我们可以看到镜像名称为docker-eureka2001:v1.0,docker容器为docker-eureka2001-server

浏览器访问:
在这里插入图片描述

这里中为输出会乱码,解决方式如下:
找到IDEA安装目录的bin目录,在idea.exe.vmoptions和idea64.exe.vmoptions文件中追加以下内容:

-Dfile.encoding=utf-8
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值