Docker容器中通过域名访问服务器局域网内的Web站点
之前公司的多个站点都是部署在两台外网服务器中, 并通过域名进行相互调用。最近要将这些站点迁移到两台处于同一局域网内的服务器中。在代码中通过Http请求另一局域网的站点时报错。请求外网第三方应用一切正常。服务器A:CentOS系统,Docker部署,Asp.Net Core Web应用,内网IP: 192.168.1.10服务器B:Windows server系统,IIS部署,Asp.Net Cor
之前公司的多个站点都是部署在两台外网服务器中, 并通过域名进行相互调用。最近要将这些站点迁移到两台处于同一局域网内的服务器中。在代码中通过Http请求另一局域网的站点时报错。请求外网第三方应用一切正常。
服务器A:CentOS系统,Docker部署,Asp.Net Core Web应用,内网IP: 192.168.1.10
服务器B:Windows server系统,IIS部署,Asp.Net Core Web应用,内网IP: 192.168.1.11
现在需要在服务器A,Docker容器中的Web应用中通过域名访问服务器B上的Web应用。
1、服务器A中添加域名映射
1.1 编辑文件:vi /etc/hosts
1.2 在文件末端添加域名映射(这里加了三个域名):192.168.1.11 x.x.com x1.x1.com x2.x2.com
1.3 保存文件
2、将Docker容器的网络设置为Host模式
2.1 在生成容器的时候加上:--network=host
例如:docker run --network=host --name hotel --restart=on-failure:10 -v /data/webapp/hotel/code:/app -v /data/webapp/hotel/files:/app/files -v /etc/localtime:/etc/localtime:ro -itd hotel_test 使用host的网络模式就不能指定端口号了。可以在dockerfile中加入一下命令来指定站点的端口号:ENV ASPNETCORE_URLS http://+:8088
2.2 如果先创建的容器,再配置域名映射。那么需要重启容器: docker restart 容器ID
更多推荐
所有评论(0)