您现在的位置是:首页 > 文章详情

我的微服务构建之旅,是什么让我爱上了 Docker?

日期:2018-09-18点击:366

screenshot

出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五晚6点10分 与您不见不散!


在之前的文章中,我们对容器与虚拟机进行了足够的讨论。所以,今天我想跟大家谈谈关于容器以及如何将其应用到如今的行业中来。以前,我们曾经在 Ubuntu 上运行所有的生产服务器,后来我们决定将所有的生产设置迁移到 CentOs 环境中。由于我们要在不同的操作系统上执行它,因此我们不得不再次重新安装所有的依赖项,这无疑是一件非常痛苦的事情。为了克服所有关于可移植性问题的挑战,我们决定使用 Docker。


screenshot

除了基础操作系统之外,我们还必须安装像 Docker 这样的容器引擎。对于整个设置,我们只需要有一个名为 Dockerfile 的预配置文件,它帮助我们将每个应用程序作为一个单独的 VM (被称为容器)运行在容器引擎(Docker)之上。它可以帮助我们在任何平台上运行这些容器,不会有任何额外的手动操作。


将 Spring Boot 应用程序封装在 Docker 容器中

我们目前正在开发一款名为“Panna”的在线视频采访平台。由于它是一个端到端的平台,所以它有不同的服务。因此,我们决定将它所包含的服务全部分解为微服务(MicroServices),让其独立于其他服务,以便后期维护和扩展。下面,让我来讲解下我们是如何将组件进行封装的。

screenshot

如上图所示,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 简化了大部分管理工作,并使流程变得更加清晰、明朗。它有助于我们维护不同版本的软件,同时方便我们将应用构建、交付到生产环境中。

原文链接:https://yq.aliyun.com/articles/642020
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章