docker 容器互相 访问

假如创建了  两 个容器 , 一个是 前端(react + nginx ) 映射主机端口为 4040:80  一个是 后端 (uvicorn+ fastapi )  映射端口为 18000:80

这个时候 他们部署到一台机器 上 ,如果 想要 前端 nginx 访问  后端的话 ,直接  http  post  主机host:18000/api/login 是不行的 

根本 就 连接 不上 ……  

需要 搞一个 桥接 bridge 网络  

docker network create testnet 

然后 前端 docker run 的时候 加上 docker run -it --name <容器名> ---network <bridge> --network-alias <网络别名> <镜像名> 

后端 docker run 的时候 也加上 docker run -it --name <容器名> ---network <bridge> --network-alias <网络别名> <镜像名> 

nginx 配置 的时候  要 用 网络别名+ 容器本身的端口 号  如  http://server:80   (server 是 后端的别名 80 是容器 本身的端口号不是映射后的!) 

这样就 能访问通啦!

 

posted @ 2021-12-09 19:13  ifnk  阅读(477)  评论(0编辑  收藏  举报