学习Spring Boot:(二十三)Spring Boot 中使用 Docker

前言

参考代码
简单的学习下怎么在 Spring Boot 中使用 Docker 进行构建,发布一个镜像,现在我们通过远程的 docker api 构建镜像,运行容器,发布镜像等操作。

这里只介绍两种方式:

  1. 远程命令 api (需要知道 Docker 命令)
  2. maven 插件 (不需要了解 Docker 命令)

开启 Docker api 远程访问

开启 docker api 远程操作的功能,
例如,centos 7 中在 /usr/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 daemon-reload    
systemctl restart docker.service 

需要注意的是,由于没有密码登陆任何权限验证,外网或者生产环境需要上证书使用。

命令方式构建镜像

这种方式其实非常简单,就是需要懂得 docker 命令,才能操作。

经过上面开启 Docker Api 后,我们可以使用网络环境操作 Docker 引擎了。

  1. 新建 Dockerfile 构建镜像文件,新创建一个文件夹,专门放构建镜像需要的文件,我创建的是 /src/docker/

    FROM java:8
    EXPOSE 8080
    
    VOLUME /tmp
    ADD springboot-docker.jar app.jar
    ENTRYPOINT ["java","-jar","/app.jar"]
    
  2. 执行 maven 命令 ,将项目打包 mvn clean package --DskipTests,然后将打好的 jar 包,也放入到 Dockerfile项目目录中。

  3. 然后进入 src/docker 目录下执行 :

    docker -H tcp://xxx.xxx.xxx.xxx:2375 build -t test .
    

    开始构建镜像:

    Sending build context to Docker daemon  31.74MB
    Step 1/5 : FROM java:8
     ---> d23bdf5b1b1b
    Step 2/5 : EXPOSE 8080
     ---> Using cache
     ---> 060a43a42146
    Step 3/5 : VOLUME /tmp
     ---> Using cache
     ---> b4f88fde6181
    Step 4/5 : ADD springboot-docker.jar app.jar
     ---> 3a40188825b0
    Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
     ---> Running in ab093916fc4c
    Removing intermediate container ab093916fc4c
     ---> 45a3966feb60
    Successfully built 45a3966feb60
    Successfully tagged test:latest
    
    

使用 docker-maven-plugin构建镜像

在 maven 项目下加入 docker-maven-plugin
            <!--打包docker插件相关参数的配置-->
            <plugin>
                <groupId>com.spotify</groupId>
                &
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值