容器网络就是容器之间的通信。
目标:实现nignx代理webapi
工具:network
网络有三种模式:桥接模式、host模式、none模式。
网络通信
桥接模式的网络通信:
192.168.182.1 ~ 192.168.182.255
客户端 ---> Linux--->Docker--->容器---->项目
容器---->项目
容器---->项目
容器---->项目
host模式的网络通信:
192.168.182.1
客户端--->Linux--->Docker--->容器---->项目
192.168.183.1
客户端--->Linux--->Docker--->容器---->项目
192.168.184.1
客户端--->Linux--->Docker--->容器---->项目
192.168.185.1
客户端--->Linux--->Docker---> 容器---->项目
none模式的网络通信:
容器---->项目(内部模式)
推荐桥接模式,默认模式 bridge
创建桥接模式网段
docker network create nginx_webapi
docker network ls
docker network inspect nginx_webapi
使用桥接模式网段
复制 yml 文件到 network
cp compose/docker-compose.yml network/
修改 yml
version: '3'
services:
mynginx:
build: /root/nginx
ports:
- 8090:80
networks:
- nginx_webapi
mywebapi:
build: /root/webapi
ports:
- 8091:80
networks:
- nginx_webapi
networks:
nginx_webapi:
external: true
再次运行
容器之间如何通信
依靠容器 Service 名称 mynginx、mywebapi
mywebapi 名称配置到 nginx 中就可以了
进入 niginx 容器
docker exec -it e23ff949a846 /bin/bash
修改 nginx.conf
cd /usr/local/nginx/
cd conf/
vi nginx.conf
重启 nginx
cd sbin/
./nginx -s reload
访问 http://:8090/WeatherForecast 地址可以看到,nginx 代理了.net 项目地址。使用网络实现了容器之间的通信。