首页 > 其他分享 >Docker的网络模式简介

Docker的网络模式简介

时间:2023-09-10 10:32:10浏览次数:30  
标签:容器 -- 简介 网络 网卡 IP Docker docker

1)docker网络常用命令

查看docker的网络模式

docker network ls

Docker的网络模式简介_docker

docker网络常用命令参数

connect 	#连接容器到网络   
create      #创建网络
disconnect  #断开容器与网络的连接
inspect     #显示一个或多个网络的详细信息
ls          #列出所有网络
prune       #删除所有未使用的网络
rm          #移除一个或多个网络

2)docker网络主要用途

容器间的互联通讯以及端口映射

容器IP变动时可以通过服务名直接网络通信而不受影响

3)docker网络模式

网络模式

简介

bridge

为每个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥中,系统默认为该模式。

host

容器将不会虚拟出自己的网卡,配置自己的IP,而是直接使用宿主机的IP和端口

none

容器有独立的Network namespace,单并没有对其进行任何的网络设置。

container

新创建的容器不会创建自己的网卡和配置自己的IP,而是和一个指定的容器共享IP与端口范围等

网络模式配置方法

bridge: #使用--network bridge指定,默认使用docker0
host:#使用--network host指定
none:#使用--network none指定
container:#使用--network container:NAME或者容器ID指定
(1)docker网络之bridge模式

Docker的网络模式简介_docker_02

Docker服务默认会创建一个docker0网桥,它在内核层连通了其他的物理或虚拟网卡,将所有容器和本地主机都放在同一个网络内。让主机和容器之间可以通过网桥互相通信。

docker0上面的veth与容器内部的eth0网卡两两配对,一 一匹配。

#创建实例
docker run -it --name r1 centos
docker run -it --name r2 centos

网卡两两匹配验证(如下图所示,容器内部网卡eth与宿主机的veth一 一匹配)

Docker的网络模式简介_docker_03

Docker的网络模式简介_docker_04

Docker的网络模式简介_docker_05

(2)docker网络之host模式

host模式下容器会直接使用宿主机的IP与外界进行通讯,不再需要额外进行NAT转换。

容器将不会获得一个独立的网络空间,而是和宿主机共用一个网络空间。容器不会虚拟出自己的网卡而是使用宿主机的IP和端口。

Docker的网络模式简介_docker_06

创建实例

#指定网络模式为host
docker run -itd --name host6 --network host centos:latest

在宿主机查看容器网络信息

docker inspect 容器ID或容器名

Docker的网络模式简介_docker_07

进入容器内部再次查看网络信息

docker exec -it host6 /bin/bash

host模式下与宿主机共用IP与端口

Docker的网络模式简介_docker_08

直接通过宿主机IP访问容器的80端口。

#安装httpd服务
yum install httpd -y
#写入内容
 echo "this is docker-Apache" >/var/www/html/index.html

Docker的网络模式简介_docker_09

(3)docke网络的none模式

在none模式下,不为任何docker容器进行网络配置,并且只有一个本地回环口(127.0.0.1)。需要我们自己为Docker容器添加网卡,配置IP信息等。

#创建none模式下的容器
docker run -itd --name none1 --privileged --network none centos:latest /usr/sbin/init

进入容器内部查看网卡信息,只有一个本地回环口无其他任何网络信息。

Docker的网络模式简介_docker_10

(4)docker网络的container模式

新建的容器和已经存在的容易共享一个网络IP而不是和宿主机共享。并且新创建的容器不会创建自己的网卡,配置自己的IP而是和一个指定的容器共享IP、端口范围等。两个容器除了网络方面,其他都是隔离开的。

Docker的网络模式简介_docker_11

使用container模式让centos1与centos2容器共用一个IP

#创建centos1
docker run -d --name centos1 --privileged=true centos:latest /usr/sbin/init
#让cewntos2与centos1共享IP
docker run -d --name centos2 --network container:centos1 --privileged=true centos:latest /usr/sbin/init

查看两个容器的网络信息

Docker的网络模式简介_docker_12

如果容器centos1停止运行,那么容器centos2的网络信息就会丢失只剩下本地回环口

Docker的网络模式简介_docker_13

标签:容器,--,简介,网络,网卡,IP,Docker,docker
From: https://blog.51cto.com/qclr/7423811

相关文章

  • 达梦数据库教程:DM8性能诊断(内存、CPU、磁盘、网络、AWR日志和接口日志诊断)
    性能诊断一、前言1.1概念性能诊断用于了解操作系统以及数据库的各项性能指标是否达到要求,以满足系统正常运行需要。通过性能诊断,可以更好地了解系统资源的使用情况、以及数据库的状态,提前避免由于性能不足引发的各种问题。性能诊断在数据库运维中具有极大的实用价值。性能诊断包括......
  • 达梦数据库教程:docker安装DM8数据库
    安装前准备软硬件版本终端X86-64架构Docker2023年6月版下载Docker安装包请在达梦数据库官网下载Docker安装包。导入安装包拷贝安装包到/opt目录下,执行以下命令导入安装包:dockerload-idm8_20230808_rev197096_x86_rh6_64_single.tar结果显示如下:导入完成后,可以使用doc......
  • 5.网络管理工具: 基于OpenStack的Neutron模块,开发一个网络管理工具,用于创建和管理虚拟
    基于OpenStack的Neutron模块开发一个网络管理工具,可以让你创建和管理虚拟网络。这个工具可以用于创建、编辑和删除网络、子网、路由以及其他网络资源。以下是一个简化的示例,演示如何使用OpenStack的PythonSDK来构建这样一个网络管理工具。注意:为了构建这个示例,你需要一个运行Open......
  • Linux网络编程(TCP状态转换关系)
    (文章目录)前言本篇文章来讲解一下TCP的状态转换关系,学习这个状态转换关系对于我们深入了解网络编程是非常有必要的。一、TCP状态转换图二、TCP连接状态转换解析客户端状态转换:1.CLOSED->SYN-SENT:当客户端尝试与服务器建立连接时,客户端从CLOSED状态转换到SYN-SEND状态。......
  • windows系统上docker配置redis闪退以及版本匹配问题
    安装镜像首先,在windows命令行安装指定版本的redis镜像:dockerpull<image_name>:<version>除此之外,因为docker安装运行redis容器,是没有配置文件的,需要自己手动创建一个 redis.conf 文件。redis.conf文件的获取最好从github官网中找。将conf文件一下参数进行调整:bind......
  • 【云原生】使用Docker部署openGauss5.0.0【自制镜像更安全】
    opengauss5.0.0基于docker的安装强烈建议大家使用我的方法进行部署,因为我们不能确定第三方的opengauss-docker镜像在制作的过程中是否增加了其他步骤,做出来的镜像是否为纯净版镜像只有自己从openGauss官网下载的安装包,自己进行制作镜像,才能保证100%是纯净版镜像,利害关系在此就不阐......
  • 小程序网络性能优化:合并请求与智能缓存提升用户体验
    在小程序开发中,网络性能优化是提升用户体验的重要一环。通过合并请求和合理的缓存策略,我们可以有效减少网络请求次数和提升页面加载速度。本文将探讨在小程序中如何优化网络性能,包括合并请求和智能缓存,同时提供代码演示。合并请求合并多个请求可以减少网络延迟,提高加载速度。小程......
  • Boost.Asio网络库 学习笔记
    Asio网络库学习笔记Boost官网:https://www.boost.org/Boost库许可证://CopyrightJoeCoder2004-2006.//DistributedundertheBoostSoftwareLicense,Version1.0.//(SeeaccompanyingfileLICENSE_1_0.txtorcopyat//https://www.boos......
  • 初识Docker
    一、何为dockerDocker是一个开源的应用容器引擎,基于 Go语言 并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类......
  • Nomad系列-Nomad网络模式
    系列文章Nomad系列文章概述Nomad的网络和Docker的也有很大不同,和K8s的有很大不同.另外,Nomad不同版本(Nomad1.3版本前后)或是否集成Consul及CNI等不同组件也会导致网络模式各不相同.本文详细梳理一下Nomad的主要几种网络模式在Nomad1.3发布之前,它自身......