我的微服务构建之旅,是什么让我爱上了 Docker?
出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五晚6点10分 与您不见不散!
在之前的文章中,我们对容器与虚拟机进行了足够的讨论。所以,今天我想跟大家谈谈关于容器以及如何将其应用到如今的行业中来。以前,我们曾经在 Ubuntu 上运行所有的生产服务器,后来我们决定将所有的生产设置迁移到 CentOs 环境中。由于我们要在不同的操作系统上执行它,因此我们不得不再次重新安装所有的依赖项,这无疑是一件非常痛苦的事情。为了克服所有关于可移植性问题的挑战,我们决定使用 Docker。
除了基础操作系统之外,我们还必须安装像 Docker 这样的容器引擎。对于整个设置,我们只需要有一个名为 Dockerfile 的预配置文件,它帮助我们将每个应用程序作为一个单独的 VM (被称为容器)运行在容器引擎(Docker)之上。它可以帮助我们在任何平台上运行这些容器,不会有任何额外的手动操作。
将 Spring Boot 应用程序封装在 Docker 容器中
我们目前正在开发一款名为“Panna”的在线视频采访平台。由于它是一个端到端的平台,所以它有不同的服务。因此,我们决定将它所包含的服务全部分解为微服务(MicroServices),让其独立于其他服务,以便后期维护和扩展。下面,让我来讲解下我们是如何将组件进行封装的。
如上图所示,Dockerfile 文件将告诉 docker 应该如何构建我们的镜像。接下来让我们详细讲解每条命令:
- FROM 235746/centos-java: 这是我们自定义构建的 docker 镜像,它由 CentOs OS 和 java 组成。
- RUN mkdir /opt/resume-application:它创建了一个文件夹来复制其中的文件。
- COPY resume-snapshot-0.0.1.jar /opt/resume-application/: 它将文件从 build 目录复制到指定路径。
- WORKDIR /opt/resume-application/: 它将我们当前的目录更改为指定路径。
- EXPOSE 9090:这条命令是告诉 Docker 在启动基于该镜像的容器时公开9090端口。
- ENTRYPOINT [ “sh”, “-c”, “java -Dspring.profiles.active=production resume-snapshot-0.0.1.jar” ]:每当容器启动时,它都会启动我们的应用程序。
一旦我们完成了 Dockerfile 文件,那么就可以将它上传到 DockerHub 或其他任意的 docker 镜像仓库中。由于我们一直在使用 DockerHub,所以让我们开始构建并将 Dockerfile 文件上传至 DockerHub 吧!
docker build -t
上面的命令用于构建我们的 Dockerfile 文件。 让我们创建一个标签并将其推送到 docker 镜像仓库。
docker login docker tagdocker-id/repo:tagname docker push docker-id/repo:tagname
现在,可以将其下载到任何地方,并通过将其暴露给端口80或443来运行它。
docker run -p 80:9090 docker-id/repo:tagname
您可以通过运行此容器的服务器 IP 地址来访问您的应用程序。我希望这可以帮助您构建自己的 Dockerfile 文件。
http://hostname
总 结
Docker 简化了大部分管理工作,并使流程变得更加清晰、明朗。它有助于我们维护不同版本的软件,同时方便我们将应用构建、交付到生产环境中。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
2018杭州云栖 Clouder Lab云存储专场实验文档:企业数据湖搭建—大规模异构数据处理实践
9月20日 E2-5 现场开讲。 实验活动内容地址如下:1、在控制台使用OSS Select2、基于日志的安全分析实战3、智能媒体管理服务控制台功能体验4、企业办公数据处理和分发(函数计算篇)5、9.20 杭州云栖ClouderLab:环境准备 欢迎大家通过上面的网址进行动手试验课程。
- 下一篇
弹性计算双周刊 第14期
【最新动态】 9月19日,杭州云栖大会开幕 杭州云栖大会弹性计算专场,由阿里云研究员褚霸带来“未来已来:弹性 · 计算 · 服务”的精彩开场。现场对当代云计算的发展进行了展望,弹性计算全系产品更新解读,并重磅发布了弹性容器实例:ECI。弹性计算作为阿里云核心的产品家族,一直以来都承载着飞天“为了无法计算的价值”使命感。在过去的一年内弹性计算家族大幅升级,阿里云弹性计算不仅仅是在计算领域丰富了企业级产品规格族实例,并且在行业特性不断细分以及以客户个性化需求为出发点,弹性计算在今年丰富了10+个实例产品规格族, 适合 AI深度学习视频处理的GN6, 适合基因组研究以及图形转码的F3,超级计算集群SCC,适合软硬一体的弹性裸金属(神龙),新的无性能约束模式的入门级t5实例等;在存储领域推出的ESSD云盘,性能高达100万的IOPS,4000
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8编译安装MySQL8.0.19