我正在尝试使用docker-compose为docker配置redis。 所以redis容器正在运行,如果我想连接到在nodeJs服务器上运行redis的容器,我应该使用什么ip地址?
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aa3adc6041aa redis "docker-entrypoint..." About an hour ago Up 14 minutes 0.0.0.0:6379->6379/tcp redis
$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis
172.18.0.2
这是否意味着我应该将env redis主机变量设置为172.18.0.2?变量会在另一台机器上发生变化吗?
答案 0 :(得分:3)
您希望避免使用IP地址,因为它们在机器之间以及docker-compose环境的不同运行之间会有所不同。
如果使用docker-compose
启动容器,则可以按名称引用同一文件中的其他容器。换句话说,如果你有:
version: '3'
services:
redis:
image: redis
nodejs_app:
image: myapp
然后您可以将redis主机变量设置为redis
。