配置docker容器以访问internet和其他docker容器

配置docker容器以访问internet和其他docker容器,docker,docker-compose,docker-networking,azure-container-instances,Docker,Docker Compose,Docker Networking,Azure Container Instances,我正在使用docker for windows,有一个docker compose文件,该文件正在创建两个客户应用程序以及一个RabbitMq和一个Seq容器。例如,docker-compose创建的本地网络上的实例名称相互通信 version: '3.4' services: legacydata.workerservice: container_name: legacydata.workerservice image: ${DOCKER_REGISTRY-}legacy

我正在使用docker for windows,有一个docker compose文件,该文件正在创建两个客户应用程序以及一个RabbitMq和一个Seq容器。例如,
docker-compose
创建的本地网络上的实例名称相互通信

version: '3.4'

services:
  legacydata.workerservice:
    container_name: legacydata.workerservice
    image: ${DOCKER_REGISTRY-}legacydataworkerservice
    build:
      context: .
      dockerfile: LegacyData.Worker/Dockerfile
    depends_on:
      - rabbitmq

  legacydata.consumer:
    container_name: legacydata.consumer
    image: ${DOCKER_REGISTRY-}legacydataconsumer
    build:
      context: .
      dockerfile: LegacyData.Consumer/Dockerfile
    depends_on:
      - rabbitmq

  rabbitmq:
    image: rabbitmq:3-management-alpine
    container_name: rabbitmq
    environment:
      - RABBITMQ_ERLANG_COOKIE='secretcookie'
      - RABBITMQ_DEFAULT_USER=user
      - RABBITMQ_DEFAULT_PASS=password        
    ports:
      - 5672:5672
      - 15672:15672

## Move Seq to Azure ACI
#  seq:
#    image: datalust/seq:latest
#    container_name: seq
#    ports:
#      - 5341:80
#    environment:
#      ACCEPT_EULA: Y
我想将Seq实例移动到Azure ACI中(例如,我正在运行该实例,并且可以按预期访问它)


如何配置docker以允许本地容器访问彼此和internet资源?

实际上,您可以创建一个包含所有容器的容器组,容器组中的容器可以通过它们公开的端口相互通信。你要学习这个例子。默认情况下,容器也可以毫无问题地访问Internet


唯一的问题是您需要自己从Dockerfile本地创建所有图像。ACI不支持为您创建图像。

您不需要做任何特殊的事情;这应该行得通。你能用一个实际的主机名、错误消息和?你的意思是允许
legacydata.consumer
legacydata.workerservice
?@AssaelAzran否-每个遗留数据库服务都应该与RabbitMq(桌面Docker中本地运行的容器)通信吗和Seq(Azure ACI running container)@DavidMaze这对我来说是最小的可复制环境。。。。但我支持一个公司代理。如果这能起作用,那么可能是代理在起作用。。。这不是[face palm]第一次……您是否尝试将您的服务定义为使用用户定义的网络?感谢您花时间回复。Azure ACI可能与此无关。我认为我的本地docker容器无法访问任何远程URL。@MarkCooper您的容器只需要相互通信,不需要访问远程URL。谁说容器需要访问远程URL?例如,我需要访问远程URL;在线Seq服务器、应用程序洞察或Azure消息队列。@MarkCooper就这么做吧。组内的容器可以访问外部。只有当外部用户访问组内的容器时,才需要暴露端口。@MarkCooper该问题有任何更新吗?它能解决你的问题吗?