首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在码头组合应用程序和其他容器之间创建码头群网络

在码头组合应用程序和其他容器之间创建码头群网络
EN

Stack Overflow用户
提问于 2016-10-13 15:20:47
回答 1查看 1.1K关注 0票数 1

因此,假设我有一个应用程序被部署到Docker群中,并且它有一个类似于以下内容的撰写文件:

代码语言:javascript
复制
version: '2'

services:
  postgres:
    image: postgres
    environment: 
      - POSTGRES_PASSWORD=password
    networks:
      - app-network
    volumes: 
      - postgres:/var/lib/postgresql/data

  myapp:
    container_name: 'myapp'
    image: myapp:debug
    depends_on:
      - postgres
    build:
      context: .
      dockerfile: Dockerfile.debug
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

volumes:
  postgres:

也许我想要部署其中的几个应用程序,它们通过一个rabbitmq容器进行通信。我想我可以像这样在蜂群上建立一个网络:

代码语言:javascript
复制
$ docker network create -d overlay common-network

然后我就可以提供这样的一个rabbitmq实例

代码语言:javascript
复制
$ docker run -d \
--hostname rabbit \
--name rabbit \
-e RABBITMQ_ERLANG_COOKIE='bleh' \
-e RABBITMQ_DEFAULT_USER='rabbitmq' \
-e RABBITMQ_DEFAULT_PASS='rabbitmq' \
-e RABBITMQ_DEFAULT_VHOST='/' \
rabbitmq:3

然后部署我的应用程序:

代码语言:javascript
复制
$ docker-compose up

但是,看起来应用程序不可能到达“兔子”。

代码语言:javascript
复制
$ docker network ls
NETWORK ID          NAME                                                 DRIVER              SCOPE
176e455e8215        common                                               overlay             global
8f1b14690f2b        swarm-agent-40001BF7000000/bridge                    bridge              local
3cfaae53a0dc        swarm-agent-40001BF7000000/host                      host                local
a01b27b94fcc        swarm-agent-40001BF7000000/none                      null                local
aa6f5b56a6d3        swarm-agent-40001BF7000000/publish_app-network   bridge              local

应用程序可以看到在同一个组合文件中定义的服务(如上面所示),但是它们看不到外部的服务。

如何才能在同一个网络上获得所有的应用程序?

编辑1我也尝试过将撰写文件更改为:

代码语言:javascript
复制
networks:
      - app-network
      - common

networks:
  adapter-network:
    driver: bridge
  common:
    external: true
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-13 16:05:53

因此,我只需要创建一个带有-net参数的rabbitmq服务:

代码语言:javascript
复制
docker run -d \
--hostname rabbit \
--name rabbit \
--net common \
-e RABBITMQ_ERLANG_COOKIE='blah' \
-e RABBITMQ_DEFAULT_USER='rabbitmq' \
-e RABBITMQ_DEFAULT_PASS='rabbitmq' \
-e RABBITMQ_DEFAULT_VHOST='/' \
rabbitmq:3

引用撰写文件中的“公共”网络:

代码语言:javascript
复制
networks:
      - app-network
      - common

networks:
  adapter-network:
    driver: bridge
  common:
    external: true
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40024999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档