docker修改容器网络

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 在网络模式前请确保这是你想要的。
分享让更多人看到