文章目录
docker 网络模式介绍
# Tips:如下模式在集群模式下无法使用
bridge: --net=bridge # 桥模式(默认模式,创建容器时可省略,容器与宿主机共享Network namespace)
host: --net=host # 宿主机模式(直接绑定在宿主机ip,无端口映射功能,容器与宿主机共享Network namespace)
none: --net=none # 无网络(容器有独立的Network namespace,但未进行任何配置,如需要可自行定义配置网络)
container: --net=container:NAME_or_ID # 容器模式(当前容器与另一指定容器共享Network namespace)
user-defined:# 用户自定义模式
# Tips、bridge 与 host 模式的区别
1、bridge 模式下,容器有独立的ip,与主机或其他容器的隔离性好(小心映射到0.0.0.0 上的端口,在不写acl时firewalld未进行拦截)
2、host 模式,可能会出现端口冲突,不支持端口映射(因为容器内的port直接绑定到物理机上)
# Tips、默认桥接网络docker0 与 自定义桥接网络的差别
默认桥接网络docker0:
1、网络中所有主机只能使用ip访问,(--link创建的容器可以直接使用 容器名 进行访问----新版已不推荐)
自定义网络桥接网络:
1、网络中所有主机除ip访问外,还可以直接用容器名(container-name)作为hostname相互访问。
docker network 日常使用命令
# 查看容器网络
[root@OSS ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
7e8786d962ce bridge bridge local
ae0ee70c6e6c host host local
0bbaf35776c1 none null local
425f4266976b redis_byy-edge bridge local
89e488e4aa58 zookeeper_and_kafka_byy-edge bridge local
# 查看某容器的网络类型
docker inspect --format='{{.HostConfig.NetworkMode}}' <container_name_or_id>
# 查看容器网络详情
docker network inspect NETWORK_NAME
# 创建容器网络
docker network create [OPTIONS] NETWORK_NAME
docker network create -d bridge my-bridge # 创建一个桥接网络
docker network create -d bridge --subnet 192.168.1.0/24 my-bridge # 创建指定网络的桥接网络
# 删除容器网络
docker network rm NETWORK_NAME
# 清理未使用的网络(-f 强制删除)
docker network prune
# 将容器连接到网络
docker network connect NETWORK_NAME CONTAINER
# 将容器从某网络断开
docker network disconnect NETWORK_NAME CONTAINER
docker compose 中如何指定网络模式
## 其他模式参考写法
network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"
示例一、host模式
[root@OSS ~]# cat docker-compose.yaml
services:
nginx:
image: nginx:lastest
container_name: nginx
restart: unless-stopped
environment:
TZ: Asia/Shanghai
network_mode: host
示例二、多容器使用 同一个mynet自定义网络
[root@OSS ~]# cat docker-compose.yaml
services:
web:
image: nginx
networks: mynet
db:
image: mysql
networks: mynet
networks:
mynet:
driver: bridge
示例三、使用自定义网段网络
services:
web:
image: nginx
networks:
- my-network
networks:
my-network:
driver: bridge
ipam:
config:
- subnet: 192.168.1.0/24
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论