文章目录
一、基本知识
1、Docker 网络模型
Docker 的网络模型分为四个层次:容器内部、主机、外部网络和互联网。其中,容器内部的网络是最基本的,也是最容易理解的。每个容器都会创建一个独立的网络命名空间,并且默认情况下,所有容器之间都是隔离的,无法直接进行通信。如果需要让容器之间相互通信,则可以使用 Docker 的网络驱动程序。
2、Docker 网络驱动程序
Docker 支持多种不同类型的网络驱动程序,每种驱动程序都有自己的用途和特点。以下是一些常见的 Docker 网络驱动程序:
- bridge 驱动程序:用于在 Docker 主机上创建一个桥接网络,容器可以通过该网络与主机及其他容器进行通信。
- host 驱动程序:容器将直接连接到主机网络,并且与主机共享 IP 地址和网络接口。
- overlay 驱动程序:用于跨主机的容器通信,将多个 Docker 宿主机上的容器连接到一个虚拟网络中。
- macvlan 驱动程序:容器可以获得一个具有自己 MAC 地址的虚拟网络接口,使其能够使用与主机相同的网络地址。
3、Docker 网络命令
在 Docker 中,你可以使用以下命令来管理网络:
-
docker network ls
命令可以列出所有可用网络。 -
docker network create
命令可以创建一个新的 Docker 网络。 -
docker network rm
命令可以删除一个 Docker 网络。 -
docker network connect
命令可以将一个容器连接到一个 Docker 网络。 -
docker network disconnect
命令可以将一个容器从一个 Docker 网络中断开连接。 -
docker inspect <container_name_or_id> | grep -i networksettings -A 20
查看单个容器的详细网络信息
4、Docker 网络配置示例
让我们看一些实际的例子来理解 Docker 的网络配置。
创建一个新的网络
使用以下命令可以创建一个名为 my_network 的新网络:
$ docker network c