配置docker容器以访问internet和其他docker容器
我正在使用docker for windows,有一个docker compose文件,该文件正在创建两个客户应用程序以及一个RabbitMq和一个Seq容器。例如,配置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-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该问题有任何更新吗?它能解决你的问题吗?