容器网络的配置方式取决于你使用的容器技术(Docker / Kubernetes / Containerd 等)以及你的使用场景(单机 / 集群 / 跨主机)。下面我按常见情况给你一个清晰、可操作的说明。
docker network ls
| 模式 | 说明 |
|---|---|
| bridge | 默认模式,容器通过虚拟网桥通信 |
| host | 直接使用宿主机网络 |
| none | 无网络 |
| container | 共享其他容器网络 |
docker run -d --name web -p 8080:80 nginx
docker network create mynet
docker run -d --name web --network mynet nginx
docker run -d --name app --network mynet myapp
docker run -d --network host nginx
docker network create --subnet=172.18.0.0/16 mynet
docker run -d --name web --network mynet --ip=172.18.0.10 nginx
version: "3"
services:
web:
image: nginx
networks:
- mynet
app:
image: myapp
networks:
- mynet
networks:
mynet:
driver: bridge
docker swarm init
docker network create -d overlay my-overlay
| 插件 | 特点 |
|---|---|
| Flannel | 简单 |
| Calico | 安全、策略强 |
| Cilium | 高性能(eBPF) |
apiVersion: v1
kind: Pod
metadata:
name: demo
spec:
containers:
- name: nginx
image: nginx
apiVersion: v1
kind: Service
metadata:
name: web
spec:
selector:
app: web
ports:
- port: 80
targetPort: 80
type: ClusterIP
# 查看容器 IP
docker inspect <容器名> | grep IPAddress
# 测试网络连通性
docker exec -it web ping app
# K8s 排错
kubectl get pods -o wide
kubectl describe pod <pod>
我可以直接给你针对你场景的配置命令。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。