docker network_mode: "host" 网络配置方式

 更新时间:2024年05月13日 15:16:23   作者:GmLibra  
这篇文章主要介绍了docker network_mode: "host" 网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

docker network_mode: "host" 网络配置

[root@ECS02 ~]# cat  /etc/hostname
ECS02

[root@ECS02 ~]# cat /etc/hosts
127.0.0.1       localhost       localhost.localdomain   localhost4      localhost4.localdomain4
::1     localhost       localhost.localdomain   localhost6      localhost6.localdomain6
172.18.150.42   ECS02   ECS02

[root@ECS02 ~]# cat /etc/sysconfig/network
# Created by anaconda

docker network 模式

Docker network 有五种模式:

  • host 模式
  • container 模式
  • none 模式
  • bridge 模式
  • 用户 自定义

Host 模式

docker run -it --name myubuntu --net=host ubuntu /bin/bash

众所周知,Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、Iptable规则等都与其他的Network Namespace隔离。

一个Docker容器一般会分配一个独立的Network Namespace。但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。

例如,如果宿主机的Ip地址是192.168.1.100,使用host模式新建一个容器,加入容器中运行的是Nginx应用,绑定在容器的80端口上,外部主机可以直接通过192.168.1.100:80访问容器中的web应用,而使用docker run运行容器时不需要指定-p参数.即在使用host模式时,容器中的应用都直接绑定在宿主机的端口上,没有NAT转换.但容器的其他如文件系统等还是隔离的.

这种模式下,在容器中运行ifconfig命令会显示宿主机eth0的信息.

Container 模式

docker run -it --name myubuntu --net=container:NAME_OR_ID ubuntu /bin/bash

Container模式,顾名思义,就是在运行容器时通过--net指定另一个已经在运行的有单独Network Namespace的容器,然后与这个容器共享一个Network Namespace.在这种情况下,新建的容器没有自己的网卡,也不会给它分配IP,而是两个容器共享IP和端口空间.

此时,在当前容器中执行ifconfig命令会显示container指定的容器的eth0信息.

none 模式

docker run -it --name myubuntu --net=none ubuntu /bin/bash

none模式下,Docker会为新创建的容器分配自己的Network Namespace,但不会为这个容器的网络进行任何配置,容器也没有自己的IP网卡等信息,需我们为其配置.

bridge 模式

这是Docker的默认模式.

当Docker服务启动时,Docker会在宿主机上建立一个虚拟网桥docker0,宿主机上启动的容器会连接到这个虚拟网桥上.

Docker会在一个可用网段(一般是172.17.0.0/16这个网段)中为docker0分配一个IP地址(一般是172.17.0.1),而每创建一个使用bridge网络模式的新的容器,Docker就会在上面的网段中选择一个尚未分配的IP地址分配给容器的eth0网卡.

实际的网络配置过程是这样的:

Docker在主机上创建一对veth pair虚拟网卡设备,veth设备总是成对出现,它的工作模式类似于管道,数据从一头进去,从另一头出来.Docker将这对虚拟网卡的一段连接到容器的eth0端口上,另一端与docker0网桥相连.这样,docker容器就能与宿主机通信了.

在给docker容器分配IP时,默认将docker0的地址作为容器的网关.

用户自定义网络

用户可以通过Docker网络驱动器或其他的网络驱动器自定义网络。你可以将许多容器连接到同一个网络上,一旦连接到了自定义的网络上,容器之间就可以通过对方的IP地址和主机名来进行通信了。

如果容器连接到了用户自定义的网络上,容器的/etc/hosts文件会加入在同一个网络中的其他所有容器的IP地址。

由于容器有可能随时改变/etc/hosts文件,容器中的程序可能会读取到不完整的甚至空的/etc/hosts文件。通常重新读取可以解决这个问题。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置

    详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置

    本篇文章主要介绍了详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • docker搭建Jenkins以及基本使用图文教程

    docker搭建Jenkins以及基本使用图文教程

    Jenkins是一个广泛使用的开源持续集成工具,它能够自动化构建、测试和部署软件项目,这篇文章主要给大家介绍了关于docker搭建Jenkins以及基本使用的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • docker部署postgresSQL主从的方法步骤

    docker部署postgresSQL主从的方法步骤

    本文主要介绍了docker部署postgresSQL主从的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • docker之点到点的容器网络的配置

    docker之点到点的容器网络的配置

    本篇文章主要介绍了docker之点到点的容器网络的配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Docker Compose中如何限制容器的CPU和内存使用

    Docker Compose中如何限制容器的CPU和内存使用

    这篇文章主要为大家介绍了Docker Compose中限制容器的CPU和内存使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Docker本地部署Firefox火狐浏览器并远程访问的流程

    Docker本地部署Firefox火狐浏览器并远程访问的流程

    在Docker中打开Firefox意味着我们将在一个Docker容器中运行Firefox浏览器,下面是一个简单的示例,演示如何在Docker中打开Firefox,本次实践部署环境为本地环境,感兴趣的朋友一起看看吧
    2023-11-11
  • docker安装nginx容器的方法

    docker安装nginx容器的方法

    Nginx也是一款服务器,我们常用它做如:反向代理、负载均衡、动态与静态资源的分离的工作,这篇文章主要介绍了docker安装nginx,需要的朋友可以参考下
    2023-01-01
  • docker部署springboot和vue项目的实现步骤

    docker部署springboot和vue项目的实现步骤

    本文主要介绍了docker部署springboot和vue项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • pycharm与ssh远程访问服务器docker的详细教程

    pycharm与ssh远程访问服务器docker的详细教程

    这篇文章主要介绍了pycharm与ssh远程访问服务器docker,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Docker部署MySQL并实现客户端连接

    Docker部署MySQL并实现客户端连接

    这篇文章介绍了Docker部署MySQL并实现客户端连接的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01

最新评论