【问题标题】:configuring docker container ip for redis host为 redis 主机配置 docker 容器 ip
【发布时间】:2017-12-12 21:25:50
【问题描述】:

我正在尝试使用 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?变量会在不同的机器上改变吗?

【问题讨论】:

    标签: docker redis docker-compose dockerfile docker-machine


    【解决方案1】:

    您要避免使用 ip 地址,因为它们在机器之间会有所不同以及在您的 docker-compose 环境的不同运行之间

    如果您使用docker-compose 启动容器,则可以按名称引用同一文件中的其他容器。换句话说,如果你有:

    version: '3'
    
    services:
      redis:
        image: redis
    
      nodejs_app:
        image: myapp
    

    然后你可以将你的redis主机变量设置为redis

    【讨论】:

    • 我有这样的 docker-compose.yml 设置。我想我真正的问题是,在我的服务器中我有 const redis = require('redis'); const client = redis.createClient(),我要把容器ip放在那里,想知道如何引用容器ip地址
    • 您确定不能只使用主机名吗?这很常见。如果不能,则使用例如 gethostbyname 的一些类似物查找与名称“redis”关联的 IP 地址。
    猜你喜欢
    • 2018-11-13
    • 2018-04-22
    • 1970-01-01
    • 2019-06-15
    • 2016-12-23
    • 2022-11-12
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多