找回密码
 立即注册
搜索
查看: 1409|回复: 7

[软件] S1码农多,docker问题求助(已解决)

[复制链接]
     
发表于 2019-7-2 23:27 | 显示全部楼层 |阅读模式
本帖最后由 spikedingo 于 2019-7-3 11:24 编辑

这两天在折腾docker-compose,似乎还差临门一脚
情况是这样的,web项目里写的mongodb和redis连接host都是127.0.0.1,但是使用docker-compose时用network连起来时,却无法访问127.0.0.1:6379的redis服务器
yml文件如下


version: '2'
services:
    web:
        build:
          context: .
          dockerfile: docker-web-Dockerfile
        restart: always
        depends_on:
          - redis
          - mongo_db
        ports:
          - "127.0.0.1:8001:8080"
        networks:
          - wood-network
    mongo_db:
        build:
          context: .
          dockerfile: docker-mongo-Dockerfile
        restart: always
        ports:
          - "127.0.0.1:27017:27017"
        volumes:
          - "/home/volumes/mongo:/data/db"
          - "/etc/localtime:/etc/localtime"
        networks:
          - wood-network
    redis:
        image: "redis:alpine"
        ports:
         - "127.0.0.1:6379:6379"
        restart: always
        networks:
         - wood-network
networks:
  wood-network:
    driver: bridge
回复

使用道具 举报

     
 楼主| 发表于 2019-7-2 23:31 | 显示全部楼层
PS: yml里去掉web那个容器,把mongodb和redis端口暴露给外面而不使用networks时,是可以正常访问127.0.0.1:6379和127.0.0.1:27017的
回复

使用道具 举报

     
发表于 2019-7-2 23:39 来自手机 | 显示全部楼层
127.0.0.1改成0.0.0.0呢

—— 来自 Xiaomi Redmi 4, Android 9上的 S1Next-鹅版 v2.1.2
回复

使用道具 举报

     
发表于 2019-7-3 00:19 来自手机 | 显示全部楼层
或者试试填本机ip? 127回环不产生正常流量
回复

使用道具 举报

     
发表于 2019-7-3 02:00 来自手机 | 显示全部楼层
本帖最后由 magi 于 2019-7-3 02:21 编辑

web项目里连别的写域名 比如mongo_db:27017,compose文件维持原样就好。
你需要意识到每个容器自己是一个虚拟机,port里第一个的127.0.0.1相对的是物理机本机,web容器内写的127.0.0.1相对的是web这台虚拟机本机。每次启动容器动态分配各个虚拟机的ip,直接用域名可以获得这个ip走你定义的network内部从一台虚拟机到另一台虚拟机。(也就是如果数据库只给web用不需要自己随便从外部连上去看的话,可以不用port映射给物理机,只要expose端口就两个容器之间就能从network里互相了)

当然还有一种方式web容器里数据库地址、compose文件port全都写物理机的ip,这样都通过绕到本机在绕回去,但是都和本机地址有关了,失去通用性还多经过一层转发,所以不建议。

回复

使用道具 举报

发表于 2019-7-3 04:40 | 显示全部楼层
如果你的container都在自定义的network上的话container之间访问可以直接用service name加端口号访问,有类似dns的解析机制可以不用写ip。

如果不需要外部访问的话(比如物理机)mongodb和redis的port部分都可以删掉不要。
其实我把楼上的话又复述了一遍
回复

使用道具 举报

     
 楼主| 发表于 2019-7-3 07:30 来自手机 | 显示全部楼层
流石S1😤上班就去试
回复

使用道具 举报

     
 楼主| 发表于 2019-7-3 10:58 | 显示全部楼层
太给力了,成功UP
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-16 09:40 , Processed in 0.034090 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表