Docker: 容器如何访问windows宿主机中的服务,在容器中访问宿主机部署的服务,在容器中ping到宿主机

一、使用背景:

1、项目中使用到srs作为流媒体服务器

2、测试阶段时,将srs部署在windows10中

3、需要对推流拉流做认证操作

二、查看windows的hosts文件:C:\Windows\System32\drivers\etc\hosts

docker-desktop会在windows电脑每次启动时,将下面 配置写到hosts文件中

# Added by Docker Desktop
192.168.3.13 host.docker.internal
192.168.3.13 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section

如何让srs服务器访问到部署在windows系统中的认证接口:通过hosts中配置的域名host.docker.internal

三、srs关于推流拉流的配置:

 http_hooks {

        #这里配置的是srs的回调函数
        enabled         on;
        on_dvr          http://host.docker.internal:8888/srs/dvr;
        on_publish      http://host.docker.internal:8888/srs/publish;
        on_unpublish    http://host.docker.internal:8888/srs/un_publish;
        on_play         http://host.docker.internal:8888/srs/play;
        on_stop         http://host.docker.internal:8888/srs/stop;

    }

关于srs的回调函数,以on_publish 推流为例子,在推流前会将推流信息先发送给  http://host.docker.internal:8888/srs/publish 接口,在该接口中可以拿到推流信息,可以在地址栏中添加token信息,作为认证,该接口如果认证token通过,返回特定值,才能推流成功。

其中host.docker.internal会被解析成宿主机的局域网地址,这样容器就可以访问宿主机中部署的服务了。

你可能感兴趣的:(docker)