容器中如何访问未解析域名 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wuxiaolin
V2EX    Docker

容器中如何访问未解析域名

  •  
  •   wuxiaolin 2019-07-19 15:05:04 +08:00 5175 次点击
    这是一个创建于 2343 天前的主题,其中的信息可能已经有所发展或是发生改变。

    场景说明: 用 docker 启动了两个容器 nginx+php,两个容器 network 使用同一个 bridge; nginx 启动的时候暴露 80 端口给宿主机,同时设定 fastcgi 到 php:9000 的容器; 宿主机通过 host 绑定域名指向 nginx 容器;

    问题: 宿主机通过域名访问可以正常访问,但是 php 代码中,需要使用域名 curl 去触发一部分逻辑(这个逻辑无法更改),由于容器中并没有 host,所以 curl 失败。现在有个问题,我是可以修改 hosts 来达到效果,但是容器一旦重启 ip 就改变,这并不能实现简单配置的方法,有什么方法可以解决我这个问题吗?

    3 条回复    2019-08-30 18:14:19 +08:00
    lowman
        1
    lowman  
       2019-07-20 10:51:44 +08:00
    去其他社区问问吧, 这里似乎很难找到答案!!!
    Chemist
        2
    Chemist  
       2019-07-20 11:27:06 +08:00 via iPhone
    如果你期望未解析的域名指向的是你的某个容器的服务,那应该把它们都用 docker compose 编排在一起,代码里的一些 url 应该抽离出来到配置文件或环境变量,再通过 volume 或者 env 去配置。

    如果指向的是公网服务,直接配宿主主机 hosts 应该可以的。
    sleven
        3
    sleven  
       2019-08-30 18:14:19 +08:00
    如果你是用 docker-compose.yml 编排的话,需要在被访问的 service 中的 networks 下配置 aliases,在 aliases 中添加域名,且与连接的 service 加入同一网络。

    参考配置如下:

    ```yaml
    # ...
    nginx:
    image: "nginx-image"
    networks:
    mynet:
    aliases:
    - my-domain.com
    php:
    image: "php-image"
    networks:
    - mynet
    networks:
    mynet:
    ```

    经过上述配置后,即可在 php 容器内通过域名 my-domain.com 请求 nginx 容器。

    如果是启动独立的两个容器之间通过域名访问的话,我猜大概是需要在被访问的容器启动的时候增加选项 `--network-alias my-domain.com` 并且两个容器同样也要加入同一网络。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5085 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 51ms UTC 01:19 PVG 09:19 LAX 17:19 JFK 20:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86