桥接模式主机模式和映射容器模式
桥接模式
$ docker run –d –-name my_app -p 10000:80 image_name
请注意,我们不必指定 **–net = bridge,**因为这是 docker 的默认工作模式。这允许运行多个容器以在同一主机上运行,而无需分配任何动态端口。因此, BRIDGE 模式避免了端口冲突,并且每个容器运行自己的专用网络命名空间时都是安全的。
主机模式
$ docker run –d –-name my_app –net=host image_name
由于它使用主机网络命名空间,不需要特殊配置但可能导致安全问题。
映射容器模式
该模式实质上将新容器映射到现有容器网络堆栈中。这意味着第一个容器的 IP 地址和端口映射等网络资源将由第二个容器共享。这也称为容器中的容器模式。假设你有两个包含 web_container_1 和 web_container_2 的内容,我们将在映射容器模式下运行 web_container_2。让我们首先下载 web_container_1 并使用以下命令将其运行到分离模式,
$ docker run -d --name web1 -p 80:80 USERNAME/web_container_1
一旦下载,我们来看看并确保它正在运行。这里我们只是将一个端口映射到一个以默认桥接模式运行的容器。现在,让我们在映射容器模式下运行第二个容器。我们将使用此命令执行此操作。
$ docker run -d --name web2 --net=container:web1 USERNAME/web_container_2
现在,如果你只是获取两个容器的接口信息,你将获得相同的网络配置。这实际上包括主机模式,它映射主机的确切信息。第一个容器以默认桥接模式运行,第二个容器以映射容器模式运行。我们可以通过在主机模式下启动第一个容器而在映射容器模式下启动第二个容器来获得非常相似的结果。