docker实战系列——第四话--将你的spring-boot应用进行容器化的几种常见玩法

独孤文彬 独孤文彬     2022-12-11     452

关键词:

背景

docker从一个火的一塌糊涂的技术,到成为人尽皆知的基本技能已经是1-2年前的事情了,本章节的内容,意在记录和整理自己在工作和学习过程中,对于应用做容器化并推送到镜像仓库的方案和工具选择以及使用上的一些思考和心得。希望能够帮到大家

前置知识

docker、Idea 、maven、linux

容器化方案的选择

参考:https://juejin.im/post/5c60c021f265da2dd37bf85b
原则:

  • 推荐工具和自动化,减少对高水平人工的依赖,也可以降低故障率
  • 每种都可以,也都有各自优缺点,所以请结合项目或者公司的实际情况,选择适用于项目组的方式方法,最好是统一步调,减少管理和沟通成本

镜像仓库的选择

方案一:使用Idea的插件

使用IDE可视化的插件+Dockerfile(可使用本地docker,亦可使用远程(虚拟机中)的docker)
参考:https://blog.csdn.net/boling_cavalry/article/details/100051325

方案二:使用maven的dockerfile-maven-plugin插件

参考:https://zhuanlan.zhihu.com/p/90122357(灵活,强大,生产验证,资料多,社区活跃)

方案三:使用Google的gib插件

参考:https://www.jianshu.com/p/054c2e5e268d

遇到的坑

1、无法构建镜像:总结为2点,第一:检查dockerfile,是否存在语法错误。第二:检查相关资源是否存在,及其正确性
2、无法推送镜像:原因总结为3点,第一:检查用户名密码,用来登录你的仓库。第二:检查你的repository地址。第三:检查你打包的镜像,是否满足docker-hub的格式。dockerhub的username/仓库名,不能有多层路径,否则会报如下错误。

whey push image denied: requested access to the resource is denied
dockerfile-maven插件的repository的概念和docker-hub的repository,与maven的repository不一样

小结:

参考文章

https://github.com/docker/hub-feedback/issues/1222
https://stackoverflow.com/questions/41984399/denied-requested-access-to-the-resource-is-denied-docker
https://github.com/spotify/dockerfile-maven
https://www.jianshu.com/p/6717adc2ad94

docker深入浅出系列|5分钟搭建你的私有镜像仓库(代码片段)

Docker已经上市很多年,不是什么新鲜事物了,很多企业或者开发同学以前也不多不少有所接触,但是有实操经验的人不多,本系列教程主要偏重实战,尽量讲干货,会根据本人理解去做阐述,具体官方概念可以查阅官方教程,因... 查看详情

coding敏捷实战系列课第四讲:从头搭建持续集成devops流水线

...,包括单元测试,端到端测试,代码规范检查,制品库,Docker化部署。大家好,今天课程的主要内容为如何从头搭建DevOps流水线以及其在研发工作中的意义,最后是DevOps流水线实践与敏捷开发的关系的总结。最开始 查看详情

maven实战技巧「docker实战系列」使用maven插件构建docker镜像的方法(代码片段)

使用Maven插件构建Docker镜像的方法工具插件名称+官方地址修改宿主机配置(docker可以远程访问)配置DOCKER_HOST例如使用插件构建Docker镜像添加插件构建镜像添加docker-maven-plugin创建Dockerfile内容如下执行以下命令构建Docker... 查看详情

[docker官方文档]理解docker

http://segmentfault.com/a/1190000002609286什么是Docker?Docker是一个用于开发、交付和执行应用的开放平台,Docker设计用来更快的交付你的应用程序。Docker能够将你的应用程序和基础设施层隔离。而且还能够将你的基础设施当作程序一样进... 查看详情

docker官方文档理解docker

本文来自Docker的官方文档,详细介绍了Docker的体系结构、重要概念、内部工作机理等内容,推荐不了解Docker内部原理的同学阅读。什么是Docker?Docker是一个用于开发、交付和运行应用的开放平台,Docker设计用来更快的交付你的应... 查看详情

flask第四话之视图高级类用法(代码片段)

1、add_url_rule(rule,endpoint=None,view_func=None)注:这个方法用来添加url与视图函数的映射,如果没有填写`endpoint`,默认使用`view_func`的名字作为`endpoint`。app.add_url_rule(‘/list/‘,view_func=list,endpoint=‘list‘)2、@app.route(rule,**options):底层依... 查看详情

docker系列文-----docker三大核心概念以及实战(nginx与mysql)(代码片段)

Docker系列文-----Docker三大核心概念以及实战(nginx与MySQL)(2)Docker三大核心概念一.镜像(Image)二.容器(Container)三.仓库(Repository)Docker的基本命令介绍1.查看自己的docker版本2. 查看详情

docker实战系列之docker端口映射错误解决方法(代码片段)

错误:Errorresponsefromdaemon:Cannotstartcontainerweb:iptablesfailed:iptables-tnat-ADOCKER-ptcp-d0/0--dport32797-jDNAT--to-destination172.17.0.30:5000!-idocker0:iptables:Nochain/target/matchbythatname.解决 查看详情

docker实战系列之快速删除docker中的容器(代码片段)

1、停用全部运行中的容器dockerstop$(dockerps-q)2、删除全部容器dockerrm$(dockerps-aq)3.停用并删除容器dockerstop$(dockerps-q)&dockerrm$(dockerps-aq)  查看详情

容器与容器编排实战系列1--docker安装(代码片段)

CentOS7.4下安装Docker详细步骤 第一步:安装Dockeryuminstall-yyum-utilsdevice-mapper-persistent-datalvm2yum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repoyuminstall-ydocker-cesy 查看详情

docker小白从零入门到实战系列

1.安装好Centos72.关闭SELINUXsed-i‘s#SELINUX=enforcing#SELINUX=disabled#g‘/etc/selinux/configsetenforce0getenforce 3.配置阿里云镜像sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json<<-‘EOF‘"registry- 查看详情

docker系列14:容器编排(代码片段)

三、容器编排实战案例1第一步:创建yml文件[root@host1~]#vimdocker-compose.ymlversion:‘3‘services:web:image:nginx:latestports:-"5000:5000"links:-redisredis:image:redis第二步:启动容器[root@host1~]#docker-composeup-d第三步:查看通过compose启动进程的状态[root@... 查看详情

docker实战系列之搭建rabbitmq(代码片段)

...路径】,点击"详情"查看公网拉取路径  2.拉取镜像dockerpullregistry.cn-hangzhou.aliyuncs.com/jc/rabbitmq-3 3.查看拉取的镜像dockerimages4.创建并运行容器【注:这里直接采用了"IMAGEID"来指定镜像运行】d 查看详情

第四个专栏,kubernetes云原生实战,它来了~

...好,我是飘渺。之前我在公众号更新过SpringCloudalibaba实战、运维监控、SpringBoot老鸟等系列专栏文章,全网累计100万+阅读,在CSDN的收费专栏也有不少订阅,而且最关键的是还认识了不少好朋友。从今天开始我将... 查看详情

maven实战技巧「docker实战系列」本地进行生成镜像以及标签tag推送到dockerhub(代码片段)

背景介绍Docker镜像构建成功后,只要有docker环境就可以使用,但必须将镜像推送到DockerHub上去。创建的镜像最好要符合DockerHub的tag要求,因为在DockerHub注册的用户名是liboware,最后利用dockerpush命令推送镜像到公共... 查看详情

docker系列-第四篇docker镜像(代码片段)

...uniteseveraldirectoriesintoasinglevirtualfilesystem)。Union文件系统是Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。特性:一次同时加载多个文件系统,但从外面看起来,只... 查看详情

docker深入浅出系列|image实战演练(代码片段)

原文:Docker深入浅出系列|Image实战演练目录课程目标Container与Image核心知识回顾制作DockerImage的两种方式Dockerfile常用指令Image实战篇通过Dockerfile制作Image通过DockerCommit创建Image附录Image常用操作Container常用操作项目DemoGithubDocker已经... 查看详情

微服务系列教程

...SpringBoot入门IDEA版本、SpringBoot实战与原理分析视频课程、docker构建微服务、docker入门、docker进阶、docker解析及轻量级PAAS平台演练等视频 查看详情