微服务在idea中简单部署到docker

前置条件:默认已有可连接的centos7服务且安装了docker

1、idea中首先去插件市场安装docker,安装好后进行重启

2、配置docker插件

 

 通过账号密码远程ssh连接即可

3、配置每一个需要启动服务的pom文件

    <build>
        <!-- 生成jar包的名字,记得和Dockerfile文件里面的名字对应 -->
        <finalName>${artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

finalName:maven 点击package执行之后,会以该名称生成jar包

springboot.version:和自身采用的springboot版本一致即可

4、创建Dockerfile文件

在要运行的项目模块的根目录下创建Dockerfile文件

 Dockerfile内容如下

# 该镜像需要依赖的基础镜像
FROM openjdk:8-jdk-alpine
# 声明服务运行在8080端口
EXPOSE 8080
# 将当前目录下的jar包复制到docker容器的/目录下
ADD ./target/zhulin-gateway.jar zhulin-gateway.jar
# 指定临时文件目录
VOLUME /tmp
# 项目配置的日志文件目录
VOLUME /logs
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java","-jar","/zhulin-gateway.jar"]
# 指定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 指定维护者的名字
MAINTAINER henyi

openjdk:8-jdk-alpine如果docker中无该镜像会自行下载

VOLUME /logs 是我的日志文件配置了在该目录下,根据自己的项目存放的目录来进行处理即可

./target/zhulin-gateway.jar是自定义的jar包名称,和上面pom中的finalName保持一致

ENTRYPOINT ["java","-jar","/zhulin-gateway.jar"] 这里的zhulin-gateway.jar和ADD ./target/zhulin-gateway.jar zhulin-gateway.jar后一个zhulin-gateway.jar是一致的,相信不难理解

5、使用docker插件执行Dockerfile

 

 

 如果你在上面没找到对应的选项,那么就是藏在Modify里了,点击进行好好查找

Run options: 这里可以只配置端口映射即可,但是一般来说日志文件也会映射出来,下面是我的配置,可进行简单修改即可

-p 8080:8080 -v /mydata/zhulin/gateway/tmp:/tmp -v /mydata/zhulin/gateway/logs:/logs

-v /mydata/zhulin/gateway/tmp:/tmp -v /mydata/zhulin/gateway/logs:/logs

这里的:/tmp就是上面dockerfile的tmp目录,logs同理,这里就是为了映射docker容器的目录出来

6、先执行maven的clean, 再执行package(一般来说我们都喜欢直接在父项目点clean和package,你想到具体的服务模块点也可以)

点击package之后会打出包

 7、执行docker插件启动

 执行后会生成镜像和容器 如下图所示:

 然后点击log可看到我们的项目启动起来了

 缺点:当我们多次更新代码,重新clean,package之后,重新点击docker插件执行,会生成多余无用镜像,会占用我们的空间,并且也不美观。目前这个暂时没法解决,只能人为的执行docker命令来进行删除

 删除<none>镜像命令:

docker rmi $(docker images -f "dangling=true" -q)

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值