docker容器中报错curl: (7) Connection refused

前言:

笔者使用docker作为自己的本地开发环境(使用docker-compose作为部署工具),在使用laravel+passport作为自己的接口API认证。发现了一个神奇的问题:在设置nginx的项目conf文件,项目设置一个虚拟域名api.test。这时候请求api.test/oauth/token是可以请求的,但是通过获取后的token再去请求其他接口的时候却一直报500:Unauthenticated错误。使用本地ip192.168.0.XXX却没有这个问题

原因:

请求接口发生在docker容器内部,这时候无法识别api.test这个虚拟域名。
 

解决:

docker-compose可以直接在php容器配置里新增extra_hosts属性

    extra_hosts:
      # - api.payment.test:10.0.75.2
      # - api.payment.test:127.0.0.1
      - api.payment.test:192.168.0.159

如果不是使用docker-compose,需要手动进入php容器并

cd /etc

vim hosts

写入 192.168.0.159 api.payment.test

你可能感兴趣的:(docker)