加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

运行多个docker撰写

发布时间:2020-12-16 03:41:07 所属栏目:安全 来源:网络整理
导读:我正在使用在3个不同的Docker上运行的应用程序: 第一个是使用REST API调用的服务器HTTP 第二个是rabbitmq 第三个是工人 整个应用程序使用docker-compose启动 真的很简单:) 我想使其可扩展并独立于其他应用程序运行整个应用程序的多个实例(3个docker镜像),然

我正在使用在3个不同的Docker上运行的应用程序:

>第一个是使用REST API调用的服务器HTTP
>第二个是rabbitmq
>第三个是工人

整个应用程序使用docker-compose启动

真的很简单:)

我想使其可扩展并独立于其他应用程序运行整个应用程序的多个实例(3个docker镜像),然后放置像haproxy这样的负载均衡器,它将重定向到其中一个应用程序.

我看到我可以使用docker-compose up –scale blablabla然而问题是我可以扩展容器,但我真的想保持不同的“应用程序”独立.

例如,如果我想要3个版本的应用程序,我将有9个泊坞窗图像等.

我看到我们可以使用–privilege在docker中运行docker(允许我用里面的3个docker创建一个docker)但我在Stack Overflow上读到它不是一个合适的解决方案.

你有解决方案吗?或至少阅读一些文件.

我听说Kubernetes可能是一个解决方案,但我不确定.我看了(在堆栈上)

If you need multiple containers tightly bound,you may want to look at Kubernetes that runs docker inside their “pods”

最佳答案
听起来你只想要3个不同的环境或Compose应用程序的“堆栈”彼此独立运行.如果是这种情况,您可以使用docker-compose的–project-name或-p选项来处理此问题.一个例子是这样的:

>启动应用程序版本1:docker-compose -p appv1 up -d
>启动应用程序版本2:docker-compose -p appv2 up -d
>启动应用程序版本3:docker-compose -p appv3 up -d

此时,您将运行3组不同的容器,这些容器可以彼此独立地扩展. Docker Compose将项目名称(通常从文件夹名称推断)添加到容器名称之前.您将获得容器名称,例如appv1_worker_1,appv2_worker_1,appv3_worker1.如果您只扩展appv2工作服务(docker-compose -p appv2 scale worker = 2),那么您将获得额外的appv2_worker_2.

默认情况下,compose始终会创建容器可以在其中进行通信的默认网络.在这种情况下,您将拥有3个独立的网络(appv1_default,appv2_default和appv3_default).

如果您接下来想为每个项目名称运行不同的图像,则可以在docker-compose.yml中使用环境变量插值.例如,您可以为服务指定image:${MYIMAGE},然后执行以下操作:

> MYIMAGE = myorg / myapp:v1 docker-compose -p appv1 up -d
> MYIMAGE = myorg / myapp:v2 docker-compose -p appv2 up -d

希望这有助于在Docker Compose中做到这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读