docker-network
作用
- 容器间的互联和通信以及端口映射
- 容器ip变动时候可以通过服务名直接网络通信而不受影响
常用命令
命令 | 作用 |
---|---|
docker network ls | 查看网络列表 |
docker network create 网络名 | 创建一个网络,不指定类型默认bridge,可以使用-d 指定类型 |
docker network rm 网络名 | 删除一个网络,如果有容器连接这个网络,需要使用-f 强制删除 |
docker network inspect 网络名 | 查看一个网络的详情 |
docker network prune | 删除所有未使用的网络 |
docker network connect 网络名 容器id | 将一个容器加入到一个网络中 |
docker network disconnect 网络名 容器id | 与connect相反,从网络中断开一个容器的连接 |
网络模式
模式 | 说明 |
---|---|
bridge | 默认模式。为每一个容器分配、设置ip等,并将容器连接到一个docker0 虚拟网桥 |
host | 容器将不会虚拟出自己的网卡,配置自己的ip等,而是使用宿主机的ip和端口 |
none | 容器有独立的network namespace,但并没有对其进行任何网络设置,如分配veth pair、网桥连接和ip等 |
container | 新创建的容器不会创建自己的网卡和配置自己的ip,而是和一个指定的容器共享ip,端口范围等 |
小技巧:
在Docker容器中访问宿主机的端口,可以使用宿主机的特殊地址host.docker.internal。在Docker容器中,可以通过host.docker.internal来访问宿主机的端口。
例如,如果宿主机的端口是8080,可以在Docker容器中使用http://host.docker.internal:8080来访问宿主机的端口。这样就可以实现Docker容器与宿主机之间的端口通信。