docker修改容器网络
人民网>>社会·法治

docker修改容器网络

2025-06-24 12:27:34 | 来源:人民网
小字号

1.网络模式分类docker。

       。 docker 当Run创建Docker容器时可用-net选项指定容器的网络模式,docker主要有以下四种网络模式

  • bridge模式:--net=bridge #xff08;默认设置�自己创建也使用bridgeeedgee 模式)
  • host模式:--net=host 与宿主共享网络。
  • container模式:--net=container:NAME_or_ID 容器网络连接!(很少使用,极大的局限性!)。
  • none模式:--net=none 不配置网络。

2.查询所有网络。

命令:docker network ls。

[root@Zwz9535z41cmgcm7i81 ~]# docker network lsNETWORK ID     NAME      DRIVER    SCOPE8db7e98   bridge    bridge    local48e75b7efb3   host      host      local7e07c5ba34   none      null      local。
bridge 网桥模式。

        安装后,Docker将在宿主主机上创建一个名称 docker0 虚拟网桥,七层网络模型的数据链路层,每当我们创建一个新的docker容器,在不指定容器网络模式的情况下,docker会通过 docker0 与主机的网络连接,docker0 相当于网桥。

使用 bridge 新模式创建的容器,容器内部有虚拟网卡,名为 eth0󿀌容器之间的IP可以通过容器内部的IP相互通信。

命令:docker run -d -name tomcat01 --net=bridge -p 8085:80 tomcat:latest。
说明:

  • --net=bridge 可省略 ,-p 指定端口映射
  • 网桥默认 IP 范围一般都是 172.17.x.x。
host 模式。

        如果指定的host模式容器没有独立的network namesace,与宿主主机共用network namesace。也就是说,容器本身没有网卡信息,相反,使用宿主主机的网络信息。除网络࿰外,容器还使用c;其他的,如文件系统和过程,仍然是隔离的。

说明:

  • --net=host 指定
  • 容器与宿主机共享 Network namespace。
  • host模式与宿主机共享network namespace,端口冲突可能发生。
container模式。

        container模式与host模式非常相似c;共享networkhost模式和宿主机 namespace;container模式与指定容器共享,除了网络共享(网卡,主机名,IP 地址),其他方面还是隔离的。

命令:docker run -d -name tomcat02 --net=container:name/id -p 8000:80 tomcat:latest。
说明:

  • –-net={ 容器id 或者容器name} 指定
  • 当前容器与另一个容器共享 Network namespace。
none模式。

如果dockers容器指定的网络模式是none,则该容器无法联网,外界也不能访问它,可用于本次测试。

命令:docker run -d -name tomcat02 --net=none -p 8000:80 tomcat:latest。
说明:

  • --net=none 指定
  • 容器有独立的Network namespace,但是没有任何网络设置,如有必要,,网络需要自定义配置。

改变网络。

###解除容器绑定的网络 网络名词mynetwork 容器名称 lnmp[root@lnmp tp6cms]# docker network disconnect mynetwork lnmp##删除原始网络[root@lnmp tp6cms]# docker network rm mynetwork##重建容器网络[root@lnmp tp6cms]# docker network create --subnet=192.168.222.0/24 mynetwork7d40e0be1fcade91fcade9109a54a05bf001254e0bbb949bec5335db247efd0be#为容器重新指定网络[root@lnmp tp6cms]# docker network connect mynetwork lnmp ##重新启动容器[root@lnmp tp6cms]# docker container restart lnmp。
Docker 网络桥接模式及 Host 模式差异。

首先,我们需要知道 Docker 两种网络模式的区别。在桥接网络模式下,Docker 它将为每个容器创建一个独立的网络命名空间,并为容器分配一个|P 地址。而在 Host 在网络模式下,该容器将直接使用主机的网络栈,与主机共享网络接口 IP 地址,这意味着容器可以直接访问主机上的所有网络服务,容器与主机网络之间的隔离也会降低。

Docker 网络桥接改 Host。

在使用 Docker 运行容器时󿀌网络配置经常涉及。默认情况下�Docker 为容器提供网络连接采用桥接网络模式。但有时�也许我们需要将容器直接连接到主机网络,此时需要将就 Docker 网络模式改为 Host 模式。本文中󿼌我们将介绍如何通过改变来改变 Docker 网络桥接模式为 Host 该模式实现了容器直接连接到主机网络的配置。

Docker 已创建的网络模式不能直接修改为容器 host。但是,您可以通过以下步骤实现您的需求:

1. 停止当前运行的容器。
2. 删除原容器。
3. 重建并指定网络模式 host。

以下是一些可能的解决方案:

解决方案1:使用命令行。

# 停止当前运行的容器docker stop  # 删除原容器docker rm  # 重建并指定网络模式 hostdocker run --net=host --name= 

解决方案2󿄚使用Docker Compose。
如果使用Docker 管理你的容器࿰的Composec;你可以在你的docker-compose.在yml文件中改变网络模式,然后重新创建您的服务。

version: '3'services:  your_service:    image: your_image    network_mode: host。

然后运行以下命令重新创建服务:

docker-compose up -d。

注意:使用 host 宿主机的网络࿰将用于网络模式的容器c;这意味着容器的网络配置和DNS设置将与宿主机相同。这可能会导致网络配置冲突,因此在使用 host 在网络模式前󿀌请确保这是你想要的。

(责编:人民网)

分享让更多人看到