我目前在我的一个项目中有一个Redis,Postgres和一些Golang容器。我已经在我的机器上使用docker-compose在本地完成了所有工作。
redis:
container_name: redis
build:
context: .
dockerfile: redis/Dockerfile
ports:
- 6379:6379
networks:
- my-network这允许我在Golang微服务中使用容器名称连接到Redis容器:
&redis.Pool{
Dial: func() (redis.Conn, error) {
return redis.Dial("tcp", "redis:6379")
},这一切都很完美,然而,我想将这些容器放在ECR中并使用ECS。对于如何识别我的服务并在AWS中与它们通信,我有点困惑。如果我将名称空间设置为example,然后在ECS服务中将服务发现名称设置为redis_service,这就像使用以下命令一样简单:
&redis.Pool{
Dial: func() (redis.Conn, error) {
return redis.Dial("tcp", "example.redis_service:6379")
},任何帮助都将不胜感激!
发布于 2021-03-19 17:12:38
在链接容器之后,您将能够创建它们之间的连接,就像使用docker-compose设置连接一样。在亚马逊网络服务的Dockerrun.aws.json v2文档中对此进行了描述
链接要链接到的容器的列表。链接的容器可以彼此发现并安全地通信。
也就是说,如果您使用的是多容器Docker。
有关ECS的更多高级/手动用法,您可能还会对此blog post感兴趣
https://stackoverflow.com/questions/61328824
复制相似问题