Spring Cloud 微服务入门教程(十二):Spring Cloud Docker 容器化部署
2020年03月03日 09:30:32 · 本文共 1,668 字阅读时间约 6分钟 · 3,701 次浏览上一节我们讲了服务跟踪和链路监控以后,基本微服务框架的大体已经快要结束了,在伴随微服务中的部署肯定离不开Docker,那么我们如何构建一个Docker的镜像呢?本节我们就讲一下把代码打包成镜像文件,并上传到镜像仓库中。
Dockerfile的介绍
由于主题是将微服务,Docker相关的内容不深入讲解,如果对Docker一无所知,还需要先简单了解下Docker,咱们只聊你够用的知识就可以了。在Docker中创建镜像最常用的方式,就是使用Dockerfile。Dockerfile是一个Docker镜像的描述文件。Dockerfile其内部包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
我们给每个模块下面都新建一个Dockerfile文件,内容参考如下:
#基于OpenJDK8镜像
FROM openjdk:8
#维护者和联系方式
MAINTAINER RenFei i@renfei.net
#将Maven打包的Jar添加到镜像中
ADD target/*.jar app.jar
#开启 8761端口
EXPOSE 8761
#入口点,镜像从这里开始执行
ENTRYPOINT ["java","-jar","app.jar"]
然后运行 docker build -t <标签名> 构建镜像,再运行 doucker push <仓库地址> 将镜像推送到远程镜像仓库中。每次都得手动输入命令太繁琐,我们可以写一个shell脚本来完成一系列的动作,我们再新建一个build.sh文件。
build.sh脚本
为了简便我们的操作我们新建一个脚本,Linux和Mac的同学是shell脚本就是build.sh,Windows的同学需要新建批处理文件build.bat,并且命令有所不同,我这里演示的使用Mac环境,代码如下:
#!/usr/bin/env bash
mvn clean package -Dmaven.test.skip=true -U
docker build -t XXXXXX
doucker push XXXXXX
执行这个脚本就可以帮我们使用Maven打包并且构建镜像和推送镜像,一气呵成
运行镜像
镜像本地build构建完成以后,就可以再本地运行了,运行的命令是 docker run -p <本机端口>:<容器里端口> -d <镜像名称>,例如:docker run -p 8761:8761 -d renfei/eureka 就可以启动注册中心模块了。
如果提示不可执行,还需要一个命令 chmod +x build.sh 给文件可执行的权限。
关于镜像仓库
镜像仓库的提供方有很多,可以自己建私有仓库,也可以使用官方的DockerHub,网易云和阿里云也提供仓库服务,一般自己练习的话国内使用网易云的人比较多。
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.renfei.net/posts/1003334
相关推荐
猜你还喜欢这些内容,不妨试试阅读一下以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。
- 前后端分离项目接口数据加密的秘钥交换逻辑(RSA、AES)
- OmniGraffle 激活/破解 密钥/密匙/Key/License
- Redis 未授权访问漏洞分析 cleanfda 脚本复现漏洞挖矿
- CleanMyMac X 破解版 [TNT] 4.6.0
- OmniPlan 激活/破解 密钥/密匙/Key/License
- 人大金仓 KingbaseES V8 R3 安装包、驱动包和 License 下载地址
- Parallels Desktop For Mac 16.0.1.48911 破解版 [TNT]
- Parallels Desktop For Mac 15.1.4.47270 破解版 [TNT]
- Sound Control 破解版 2.4.2
- CleanMyMac X 破解版 [TNT] 4.6.5
- 博客完全迁移上阿里云,我所使用的阿里云架构
- 微软确认Windows 10存在bug 部分电脑升级后被冻结
- 大佬们在说的AQS,到底啥是个AQS(AbstractQueuedSynchronizer)同步队列
- 比特币(BTC)钱包客户端区块链数据同步慢,区块链数据离线下载
- Java中说的CAS(compare and swap)是个啥
- 小心免费主题!那些WordPress主题后门,一招拥有管理员权限
- 强烈谴责[wamae.win]恶意反向代理我站并篡改我站网页
- 讨论下Java中的volatile和JMM(Java Memory Model)Java内存模型
- 新版个人网站 NEILREN4J 上线并开源程序源码
- 我站近期遭受到恶意不友好访问攻击公告