什么是 Docker 容器网络?
在 Docker 中,容器网络是一种在主机内创建虚拟网络的方式。每个容器都可以加入一个或多个网络,并在其中运行自己的服务。这种网络可以是私有的,也可以是公共的。所有在这个网络上的容器可以互相通信,就像在同一台物理机器上运行的不同进程一样。
Docker 容器网络模式
Docker 容器网络模式分为四种:
- Bridge 模式(默认模式)
- Host 模式
- None 模式
- Container 模式
Bridge 模式
Bridge 模式是 Docker 容器默认的网络模式。在 Bridge 模式下,Docker 会为每个新创建的容器自动创建一个虚拟网桥,然后将容器连接到这个网桥上。在这个网络中,每个容器都有一个自己的 IP 地址,并且可以互相通信。
创建自己的 Bridge 网络
如果需要创建自己的 Bridge 网络,可以使用如下命令:
docker network create --driver bridge my-bridge-network
这个命令会创建一个名为 my-bridge-network
的 Bridge 网络。
使用自己的 Bridge 网络
如果需要使用自己的 Bridge 网络,可以在运行容器时使用下面的命令:
docker run -d --name my-container --network my-bridge-network nginx
Host 模式
在 Host 模式下,Docker 容器会和宿主机共享网络。容器将会直接使用宿主机的 IP 地址和端口,而不是在它们自己的虚拟网络中使用 IP 地址。
docker run -d --name my-container --network host nginx
None 模式
在 None 模式下,Docker 容器不会加入任何网络。这意味着容器将无法通过网络与其他容器或宿主机通信。这个模式适用于不需要网络连接的容器。
docker run -d --name my-container --network none nginx
Container 模式
在 Container 模式下,Docker 容器将会和另一个容器共享网络。这意味着它们可以互相通信,就像在同一台物理机器上运行的不同进程一样。
docker run -d --name my-container --network container:other-container nginx
Docker 容器网络配置举例
我们可以通过一个简单的例子来了解如何配置 Docker 容器网络。
我们将启动两个不同的容器,并将它们加入同一个网络。然后通过浏览器访问其中一个容器的服务,就能从另一个容器中访问这个服务。
步骤 1:创建自己的 Bridge 网络
首先,我们需要创建自己的 Bridge 网络:
docker network create --driver bridge my-bridge-network
步骤 2:启动容器
我们将启动两个不同的容器:
docker run -d --name container1 --network my-bridge-network -p 8080:80 nginx docker run -d --name container2 --network my-bridge-network nginx
这些命令将会启动两个容器,并将它们加入名为 my-bridge-network
的 Bridge 网络中。
container1
容器将会暴露在本地主机的8080
端口上,对应container1
容器内的80
端口。container2
容器不会暴露在本地主机的任何端口上。
步骤 3:测试网络连接
我们可以通过浏览器访问容器1的服务,在地址栏中输入:http://localhost:8080
。
然后我们可以在容器2中使用 curl 命令查看它是否能够访问到此服务:
docker exec -it container2 curl http://container1:80
在这里,我们使用了 docker exec
命令进入到 container2
容器中,并使用 curl 命令访问了 container1
容器中的服务。
总结
通过本文,我们了解了 Docker 容器网络的概念和四种网络模式,并且通过简单的例子来了解了如何配置 Docker 容器网络。希望这篇文章对初学者 Docker 容器网络配置有所帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6534df077d4982a6eba4d3d3