Tag: 微服务

如何以编程方式指定由Marathon创build的相关Docker容器的IP和端口?

我正在通过编写一个小型的networking应用程序来学习微服务架构。 该应用程序具有以下组件,每个组件将由一个泊坞窗容器托pipe。 在我用NodeJS编写的API网关中,有一些地方我会打电话: request('http://service_b_ip_addr:port/get_service_b', callback); 但是,在Marathon创build服务B的泊坞窗容器之前, service_b_ip_addr和port都是未知的。 通过一些服务发现机制,比如mesos-dns或者marathon-lb ,我想我可以把service_b_ip_addr改成像service_b.marathon.com这样的东西。 但是我不知道我该如何把port放到我的程序中。 在此先感谢您的帮助。 PS: 我使用BRIDGEDnetworking模式,因为一个服务的多个实例可以定位在同一个Mesos从站上。 所以port是一个NAT的随机数。

如何在Docker镜像中创build一个非硬编码的URLpath来调用后端服务?

我是docker工人。 让我描述一下我的场景:我为Web应用程序制作了2个docker镜像。 一个图像是用于展现的前端Web层,另一个是用于提供REST服务的后端层。 所以我需要为这2个图像运行2个容器。 前端在后台调用服务。 现在我需要在前端代码中编写后端的URL并构build映像…我不认为这是微服务的正确方法… 因为如果我的笔记本电脑的IP变化或其他人想要使用我的形象,他们不能得到服务…那么我怎么能让urlvariables,使我的前端图像可以用于其他人没有重build? 谢谢!

我有多个瓶子微服务,都相互沟通,我将如何configurationdocker?

我有多个烧瓶微服务(这显然是混淆保护知识产权) ├── README.md ├── api_starter.py ├── app_api.py ├── service1 │ ├── __init__.py │ ├── api.py │ └── service1.py ├── service2 │ ├── __init__.py │ ├── api.py │ ├── service2.py ├── dags │ ├── airflow_pipeline_runner.py ├── service3 │ ├── __init__.py │ ├── api.py │ ├── service3.py ├── service4 │ ├── __init__.py │ ├── api.py │ └── […]

如何更改ecs自动缩放的express.js微服务应用程序

这是我的集装箱化的微服务应用程序和工作stream程。 特拉维斯从git拉代码,build立docker形象,并推到ECR 。 在成功的Travis版本上使用aws cli更新ECS任务和服务,使用新的图像标签。 每个开发和分段集群都有一个实例。 对于prod群集,我可以有多个实例,但每个dev和分段群集不能多于1个实例。 该解决scheme有10个微服务,rabbitmq和mysql。 (网关,API等)。 情景:如果我的web应用程序或任何其他容器被高度使用,我想通过在同一ec2实例中自动创build多个容器来扩展。 (实例有足够的内存和内存)。 目前我硬编码的Web应用程序端口为3000.我的express.js代码应如何改变以下? dynamic绑定webapp和api的端口。 其中负载均衡。 configuration自动缩放以使其自动发生。 另外:这可以使用Ansible来实现吗? 怎么样? 我需要缩放容器,而不是集群或实例。

将Docker容器链接到另一个子目录

我正在尝试设置多个可以通过一个主容器访问的Docker容器。 例如: http://localhost:80是主容器 http://localhost:80/site1是一个单独的容器 http://localhost:80/site2是一个单独的容器 我知道 – –link标志已被弃用,而新的做法是使用–network标志。 当我使用–link (用于testing)时,我看到在主机文件中链接到的容器条目。 那是我卡住的地方。 所以我想使用docker –networking选项来设置上面的场景。 用例: /Site1可能是一个网站的pipe理员区域或成员,但是我想将它们放在单独的容器中,这样我就可以更容易地维护它们。 这些容器是基于apache2的,但是如果可能的话,不想编辑任何configuration文件(但是如果我需要的话,我可以) 我会怎么做呢?

如何在Docker环境中testingangular度应用程序而无需打开浏览器?

目前,我试图在Docker环境中使用ngtesting运行angular度应用程序的unit testing案例,所以它打开浏览器我不需要在prod发生,所以我试图运行testing – 浏览器PhantomJS,但它不是加工。 得到这个错误22 08 2017 11:52:42.355:WARN [karma]:没有捕获的浏览器,打开http:// localhost:9876/22 08 2017 11:52:42.370:INFO [karma]:Karma v1.7.0 server启动在http://0.0.0.0:9876/ 22 08 2017 11:52:42.370:信息[启动器]:启动无限并发浏览器PhantomJS 22 08 2017 11:52:42.382:INFO [启动程序]:启动浏览器PhantomJS 68没有捕获的浏览器,打开本地主机:9876/22 08 2017 11:53:42.382:WARN [发射器]:PhantomJS在60000毫秒没有被捕获,正在查杀。 22 08 2017 11:53:44.383:WARN [发射器]:PhantomJS在2000毫秒没有被杀害,发送SIGKILL。 22 08 2017 11:53:46.385:WARN [发射器]:PhantomJS在2000毫秒内没有被SIGKILL杀死,继续。

使用Docker的自包含微服务

我正在尝试设置一个由多个与Docker协作的微服务构build的项目。 这是我的项目的简化模式: – Main-project – Dockerfile – docker-compose.yml (bundles Microservice1 and Microservice2) – Microservice1 – Dockerfile – Microservice2 – Dockerfile 现在,每个组件都有很多依赖项,比如由docker-compose.yml文件pipe理的RabbitMQ。 我设法通过使用撰写文件在Docker上运行整个项目。 但是,我自己在运行单个组件时遇到问题。 问题是Microservice1依赖于rabbitMQ,但是它没有一个组合文件来pipe理这个依赖关系,其他所有组件也是如此。 所以当我尝试自己运行任何单个组件(对于unit testing,例如)我有一个缺less依赖关系的问题。 我是否也应该在每个组件的Dockerfile上添加所有依赖关系? 我应该为每个组件有一个docker-compose文件吗? build立这样一个系统的最佳实践是什么? 非常感谢! 更新: 作为一个重要的说明,我忘了提到每个微服务都有自己的回购。

如何创build图像并将图像推送到docker中心

我想推我的微服务dockerhub,但我不知道如何推它到docker集线器, docker login然后即时通讯using docker push然后它去这个消息 The push refers to a repository [docker.io/library/microservicehelloworld] An image does not exist locally with the tag: microservicehelloworld 然后即时通讯使用 docker tag microservicehelloworld microservicehelloworld 并显示这样的错误信息 Error response from daemon: No such image: microservicehelloworld:latest 这里是我的完整解决scheme,是否有任何文件丢失,或者我必须做的东西来创builddocker图像?

使用Nginx作为微服务API网关

我们正在将我们的巨无霸API分成微服务。 我们不需要速度限制,authentication,caching或任何其他网关,如能力。 使用非常简单的无状态Nginx容器路由到底层服务是否是一种有效的方法?

容器可以共享一个框架吗?

我知道,Docker容器可以共享一个数据量,但它们可以共享框架吗? 例如,如果我有两个在IIS上运行的.NET服务,我可以在它们之间共享框架吗?