如何在Docker compsenetworking中使用ipaddreses而不是容器名称

我正在使用docker撰写一个我使用asp.net核心,postgres和redis创build的Web应用程序。 我已经设置了一切,用docker-compose.yml文件中指定的服务名连接到postgres。 当试图用redis做同样的事情时,我得到一个exception。 经过研究发现,这个exception是一个已知的问题,解决方法是使用机器的IP地址而不是主机名。 但是我不知道如何从撰写文件中获取redis服务的ip地址。 有没有办法做到这一点?

编辑

这是撰写文件

version: "3" services: postgres: image: 'postgres:9.5' env_file: - '.env' volumes: - 'postgres:/var/lib/postgresql/data' ports: - '5433:5432' redis: image: 'redis:3.0-alpine' command: redis-server --requirepass devpassword volumes: - 'redis:/var/lib/redis/data' ports: - '6378:6379' web: build: . env_file: - '.env' ports: - "8000:80" volumes: - './src/edb/Controllers:/app/Controllers' - './src/edb/Views:/app/Views' - './src/edb/wwwroot:/app/wwwroot' - './src/edb/Lib:/app/Lib' volumes: postgres: redis: 

好的,我find了答案。 这是我正在尝试,但没有意识到地址可能会改变每次你重新启动容器。

运行docker ps得到一个运行contia的列表,然后复制你的容器的id并运行docker inspect {container_id} ,然后输出你可以从其他运行容器中访问它的ipaddress。

我感到困惑的原因是因为容器启动时该地址可能会改变。 所以我不得不猜测在启动容器之前,ip地址是什么。 幸运的是,5次后,我猜对了。