下面是关于Docker基础网络配置的详细攻略。
Docker 网络
Docker 网络是一种在 Docker 容器之间提供通信和服务协同工作的机制。在 Docker 网络中,容器可以和其他容器或主机之间进行网络通信,就像它们在同一个网络中一样。
Docker 网络分为如下几种:
- bridge:桥接网络,是 Docker 默认创建的一种网络,是容器之间的默认网络。当安装 Docker 时,会默认创建这个网络。该网络的子网是 172.17.0.0/16。
- host:主机模式网络,容器使用主机的网络栈,不会单独为容器分配 IP 地址和网络接口,可使用主机上的 IP 地址访问容器。
- overlay:覆盖网络,适用于多个 Docker daemon 主机上的容器通信。
配置 Docker 网络
Docker 网络可以在创建容器时指定,也可以在之后为容器添加网络。使用 Docker 网络,需要使用 Docker 命令行或 API 创建网络。
创建 Docker 网络的命令为:
docker network create <网络名称> [OPTIONS]
其中,<网络名称>
是需要创建的网络名称;[OPTIONS]
是可选项,表示网络的类型,使用 -d
选项指定。默认情况下,Docker 会创建 bridge
类型的网络。
创建桥接网络
以下命令创建名为 my_network
的桥接网络:
$ docker network create my_network
使用以下命令,可以查看已创建的网络:
$ docker network ls
它会列出所有的 Docker 网络,包括网络的名称、ID、状态、驱动类型、子网和网关等信息。
创建容器并使用自定义网络
Docker 容器可以使用通过 docker network create
命令创建的 Docker 网络。
以下命令会创建一个名为 my_network
的网络,并在该网络中启动一个名为 my_container
的容器:
$ docker network create my_network
$ docker run -d --name my_container --network my_network busybox ping 127.0.0.1
通过 --network
选项指定运行在 my_network
网络中的容器。
连接容器
可以使用 docker network connect
命令连接到 Docker 网络中的容器。
以下命令将名为 my_container2
的容器连接到名为 my_network
的 Docker 网络中:
$ docker network connect my_network my_container2
示例一
以下示例演示如何创建名为 my_network
的桥接网络,并在该网络中启动两个容器。
- 创建网络:
$ docker network create my_network
- 创建一个名为
my_container1
的容器,并指定其运行在my_network
网络中:
$ docker run -d --name my_container1 --network my_network busybox ping 127.0.0.1
- 创建另一个名为
my_container2
的容器,也将其运行在my_network
网络中:
$ docker run -d --name my_container2 --network my_network busybox ping 127.0.0.1
运行以上命令后,可以通过以下命令查看容器的 IP 地址和网络配置:
$ docker inspect my_container1
$ docker inspect my_container2
可以看到,每个容器都有其单独的 IP 地址,并且可以通过相应的 IP 地址进行通信。
示例二
以下示例演示如何创建名为 my_network
的桥接网络,并将它们连接到单个容器。
- 创建网络:
$ docker network create my_network
- 创建名为
my_container1
的容器:
$ docker run -d --name my_container1 busybox ping 127.0.0.1
- 将容器
my_container1
连接到my_network
网络:
$ docker network connect my_network my_container1
- 创建名为
my_container2
的容器:
$ docker run -d --name my_container2 busybox ping 127.0.0.1
- 将容器
my_container2
连接到my_network
网络:
$ docker network connect my_network my_container2
- 向
my_container2
容器中的ping
命令发送数据包:
$ docker exec -it my_container2 ping my_container1
运行以上命令后,可以看到 my_container2
和 my_container1
之间产生了通信。
以上就是关于 Docker 基础网络配置的详细攻略,希望可以帮助到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker 基础网络配置详解 - Python技术站