Docker容器的网络连接

docker容器间的网络连接 docker容器间的网络连接概述Legacy Linking连接步骤命令Bridge Network连接步骤命令示例相关命令 概述 容器间的连接方式目前了解到的有两种。 Legacy Linking:使用容器名进行连接,实际上它创建了一个桥接的网络,在这个网络里,容器之间可以相互通信。 Bridge Network:这种方式创建了一个自定义的桥接网络,它的类型是isolated network(隔离网络),只有在这个网络里的的容器才能相互通信。 Legacy Linking 连接步骤 运行一个容器,需要给 阅读详情

一.Docker容器的网络基础

通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务。

docker0是Linux虚拟网桥。

Linux虚拟网桥的特点:

  • 可以设置IP地址
  • 相当于拥有一个隐藏的虚拟网卡

docker0的地址划分:

  • IP:172.17.42.1 子网掩码: 255.255.0.0
  • MAC: 02:42:ac:11:00:00 到 02:42:ac:11:ff:ff
  • 总共提供65534个地址

docker守护进程在一个容器启动时,实际上它要创建网络连接的两端。一端是在容器中的网络设备,而另一端是在运行docker守护进程的主机上打开一个名为veth*的一个接口,用来实现docker这个网桥与容器的网络通信。

需要查看网桥,需要linux的网桥管理程序,在Ubuntu中通过 apt-get install bridge-utils。

$ sudo brctl show
bridge name    bridge id              STP    enabled    interfaces
docker0        8000.0242ed943d02      no

运行一个docker容器,在容器中查看它的网络设备(如果没有ifconfig命令,通过apt-get install -y net-tools)

 

root@b2a3136f5425:/# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02 
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:145 errors:0 dropped:0 overruns:0 frame:0
TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 
RX bytes:184985 (184.9 KB) TX bytes:4758 (4.7 KB)

lo Link encap:Local Loopback 
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

 

docker已经自动创建了eth0的网卡,注意观察ip地址和mac地址。不要退出容器,再运行如下查看网桥的状态

$ sudo brctl show
bridge name    bridge id           STP    enabled    interfaces
docker0    8000.0242ed943d02       no                veth95521e6

我们看到在interface中多了一个veth*的这样一个接口。通过ifconfig命令同样可以看到这个网络接口。

 

自定义docker0

  • 修改docker0默认分配的ip地址:
sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0

修改完后,重启docker服务 sudo service docker restart. 新运行的容器地址就变成了新的ip地址了。

  • 添加虚拟网桥
sudo brctl addbr br0
sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0

更改docker守护进程的启动配置:

vim /etc/default/docker 中添加 DOCKER_OPS的值 -b=br0.

重启docker服务即可。

 

二.Docker容器的互联

用于测试的Docker镜像 Dockerfile:

 

FROM ubuntu:14.04
RUN apt-get install -y ping
RUN apt-get update
RUN apt-get install -y nginx
RUN apt-get install -y curl
EXPOSE 80
CMD /bin/bash

 

1.允许所有容器互联

在同一宿主机下,docker的容器是通过虚拟网桥来进行连接的。那么在默认情况下,在同一宿主机中运行的容器都是可以互相连接的。

--icc=true 默认

容器的ip地址实际上是一个不可靠的连接,因为它会随着容器的启动而改变。

 

--link

docker run --link=[CONTAINER_NAME]:[ALIAS] [IMAGE] [COMMAND]

CONTAINER_NAME: 需要连接的容器名字

ALIAS: 在容器中连接的代号

docker -run -it --link=container01:webtest nginx
ping webtest

查看在容器中产生的哪些影响

$ env

查看环境变量,可以看到大量以WEBTEST*开头的环境变量,这些环境变量是在容器启动时,由docker添加的。我们还可以查看在/ect/host文件,这里添加了webtest的地址映射。当docker重启启动容器时 /ect/host所对应的ip地址发生了变化。也就是说,针对于指定了link选项的容器,在启动时docker会自动修改ip地址和我们指定的别名之间的映射。环境变量也会做出相应的改变。

 

2.拒绝所有容器间互联

Docker守护进程的启动选项

--icc=false

修改vim /etc/default/docker,在末尾添加配置 DOCKER_OPTS="--icc=false"。

需要重启docker的服务 sudo service docker restart.即使是link也ping不通。

 

3.允许特定容器间的连接

Docker守护进程的启动选项

--icc=false --iptables=true

--link 在容器启动时添加link

docker利用iptables中的机制,在icc=false时,阻断所有的docker容器间的访问,仅仅运行利用link选项配置的容器进行相互的访问。

注: 如果出现ping不通的情况,可能为iptables的问题(DROP规则在docker之前了)。

sudo iptables -L -n    查看iptables规则的情况
sudo iptables -F    清空iptables规则设置
sudo service docker restart 重新启用docker的服务
sudo iptables -L -n 再来查看iptables的设置,docker的规则链已经在第一位

重新启动容器即可

 

三.Docker容器与外部网络的连接

  • ip_forward

    --ip-forward=true

sysctl net.ipv4.conf.all.forwarding

ip_forward本身是Linux系统中的一个变量,它的值决定了系统是否会转发流量。在Docker守护进程的默认参数中也有ip_forward选项,默认值是true. 

  • iptables

iptables是与linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含iptables的功能。

每一个大的方块中,就是iptables中的一个链(chain),每一个链实际上就是数据处理中的一个环节,而在每个环节中又包含了不同的操作。

 

  • 允许端口映射访问
  • 限制IP访问容器

实质都是通过iptables的规则来控制的。

 

原文地址:https://www.cnblogs.com/Hai--D/p/7017933.html

超详细MySQL 8.0安装与配置 MySQL的安装与配置 还不会安装MySQL的同学们,还不会配置MySQL的同学们,赶紧按照下面步骤操作起来,超详细安装步骤如下: 进入MySQL官网 1、点击download 2、点击MySQL Community Server 3、选好选项点击go to download page 4、点击download 5、点击no thanks,just start my download 6、选Server only,点击Next 7、点击Execute 8、点击 阅读详情

相关推荐

基于DSP28335的Matlab/Simulink代码生成实验七:A/D采样

实验七:讲解如何使用DSP的ADC模块,通过代码生成技术控制DSP进行电流采样,是后续实现电机闭环控制的重要环节。通过简单的实验来熟悉代码生成的过程。最终实现复杂算法代码自动生成,进行高性能电机控制!

m0_73869369的博客 4724

Docker 网络模式详解及容器间网络通信

当项目大规模使用 Docker 时,容器通信的问题也就产生了。要解决容器通信问题,必须先了解很多关于网络的知识。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker 同样有着很多不完善的地方,网络方面就是 Docker 比较薄弱的部分。因此,我们有必要深入了解 Docker 的网络知识,以满足更高的网络需求。 默认网络 安装 Docker 以后,会默认创建三种网络,可以通过 docker network ls 查看。 [root@localh

哈喽沃德先生的博客 1193

Calibre PEX提参实战:如何用hcell和xcell文件精准屏蔽模块(附避坑指南)

本文深入解析Calibre PEX工具中hcell与xcell文件的协同工作机制,提供模块级寄生参数提取方案。通过实战案例和避坑指南,帮助工程师精准屏蔽已验证IP模块,提升仿真效率和数据一致性,适用于65nm以下工艺节点的复杂SoC设计。

weixin_29275257的博客 627

Docker基本命令与使用 —— Docker容器的网络连接(四)

一.Docker容器的网络基础 通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务。 docker0是Linux虚拟网桥。 Linux虚拟网桥的特点: 可以设置IP地址 相当于拥有一个隐藏的虚拟网卡 docker0的地址划分: IP:172.17.42.1 子网掩码: 255.255....

weixin_30606669的博客 507

本体(Ontology)概述

认识本体        本体(Ontology)的概念源自于哲学领域,在哲学中的定义为“对世界上客观事物的系统描述,即存在论”。哲学中的本体关心的是客观现实的抽象本质。而在计算机领域,本体可以在语义层次上描述知识,可以看成描述某个学科领域知识的一个通用概念模型。德国学者Studer在1998年给出了本体的相关定义“本体是共享概念模型的形式化规范说明”。这个定义包含了四层含义:即共享(share)...

baijinswpu的博客 7万+

Cadence ADE实战:1GHz VCO相位噪声仿真全流程(附PSS/Pnoise避坑指南)

本文详细介绍了在Cadence ADE环境中对1GHz VCO进行相位噪声仿真的完整流程。重点剖析了PSS(周期性稳态分析)和Pnoise(周期性噪声分析)两大核心引擎的关键参数设置与避坑指南,帮助射频与模拟IC设计者准确评估VCO性能,解决仿真不收敛、结果异常等常见问题。

rock5的博客 670

Docker网络

1、查看docker配置文件路径 systemctl status docker #查看docker运行状态 查看Loaded路径 #/lib/systemd/system/docker.service 2、重启Docker daemon systemctl daemon-reload systemctl restart docker.service 3、flannel重启 安装了etcd的机器重启后,需要重新重启etcd服务,需要将flannel网络的配置信息保存到etcd host机器重启后,需要重启f

Mr_XiangShuai的博客 508

深入了解 Google Gemini:主要功能是什么以及我们为什么要使用它?

Google Gemini开启AI新纪元,以其独特的多模式功能重塑技术未来。

KompasAI的博客 4067

Docker定制镜像部署项目到Docker容器

1、docker下创建项目工程名称 mkdir -p /usr/local/docker/qfjy_exam cd /usr/local/docker/qfjy_exam 2、将桌面qfjy_exam.zip复制到访目录下 cp qfjy_exam-1.0-SNAPSHOT.zip /usr/local/docker/qfjy_exam/ 3、创建镜像文件Docker...

chinabinggo的专栏 1071

RK3588 部署 YOLOv5s 实战:多线程加速从 16FPS 飙升到 120FPS(含性能优化)

因为RK3588包含了3个NPU核心,支持3个核心同时工作、双核合作、以及单核工作。我们可以使用线程池来加速。线程池是一种长街的并发编程模型,它用于管理和复用线程,以提高多线程程序的性能和效率。线程池通常包含以下主要组件:1、任务队列:任务队列用于存储待执行的任务。这些任务可以是函数、方法或其他需要多线程环境中执行的操作。2、线程池管理:线程池管理器负责创建、销毁和管理线程。它会监视任务队列中的任务,根据需要创建线程,执行任务,并在任务完成后将线程放回池中以供重用。

FJN110的博客 99

第14.11章 高翔博士最新开源框架Lightning-LM源码解读(十一):离线定位模块全解析,从激光匹配到位姿图优化的极致优化

本文介绍了Lightning-LM离线定位模块的技术架构与实现细节。该模块基于3D激光雷达与IMU融合,采用改进版NDT匹配算法实现高精度定位,具备动态图层更新、多源信息融合等特性。核心流程包括数据预处理、激光里程计处理、IMU预测与点云去畸变、位姿图优化等环节,通过轻量级miao库实现高效增量优化。文章详细解析了模块的代码结构、关键函数功能及数据流,为SLAM系统的开发与优化提供了实践参考。

行知SLAM 375

网络重启操作 导致 docker 内ping不通外网

问题描述: 在进入docker 里面 ping 114.114.114.114(或其它外网)ping 不通? 查看docker的网络也正常 # docker network ls # docker network inspect xxxx 问题产生原因: docker 运行的时候会默认将 ip_forward 置为开启状态,但是一旦有网络重启操作竟会导致其关闭,导致 ping 不通外网 ! 重新启动网络: systemctl start network.service 或者 servic.

架构师的成长之路的博客 3955

YOLOv8安防监控实战:跌倒/闯入/徘徊实时检测(附TensorRT加速+声光报警部署代码)

精准性:针对跌倒/闯入/徘徊的行为特征优化,准确率达89.3%,误报率低于5次/天;实时性:TensorRT加速到50+FPS,报警延迟<1秒,满足安防“黄金响应时间”;低成本:无需专用AI芯片,RTX 3060或Jetson Orin就能跑,硬件成本比传统方案低60%;易部署:代码全开源,提供从模型训练到硬件联动的完整流程,2天即可搭起原型系统。如果你的安防监控还在“漏报误报”“响应慢”,建议先从跌倒检测的姿态过滤改起——用100张样本测试,再集成TensorRT加速,90%能看到明显改善。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 680

docker容器的网络连接

docker容器的网络连接 docker容器的网络基础 docker容器的互联 docker容器与外部网络的连接 docker容器的网络基础 docker0:linux虚拟网桥 linux虚拟网桥的特点: 可以设置ip地址 相当于拥有了一个隐藏的虚拟网卡 docker0的地址划分: IP:172.17.42.1 子网掩码:255.255.0.0 MAC:02:42:ac:11:00:00到0...

u013965752的博客 357

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

docker server 容器连接sql_Docker 容器的网络连接

文章首发于公众号《程序员果果》 地址:https://mp.weixin.qq.com/s/DzF-ZwaY4QtlgM32I5wybg一、Docker 容器的网络基础docker0(Linux的虚拟网桥)通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务。[root@localhost ~]# ifconfig...

weixin_32394015的博客 220

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

docker容器修改网络连接

docker容器修改网络连接

tbwikzzy的博客 3924

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

docker 查看容器的网络连接

#! /bin/bash echo $1 PID=$(docker inspect -f '{{.State.Pid}}' $1) nsenter -t $PID -n netstat |grep ESTABLISHED    sudo sh docker-netstat.sh demo

weixin_34138056的博客 6524

AI如何快速解决Docker容器网络连接错误

这个错误让我头疼了好一阵子,后来发现借助AI工具可以快速诊断和解决这类问题。下面分享我的解决过程和经验总结。特别是对于这种需要快速验证想法的场景,省去了本地搭建环境的麻烦,效率提升很明显。它不仅帮我快速解决了具体的技术问题,更重要的是教会了我如何系统性地分析和解决Docker网络问题。这个错误通常发生在Docker容器尝试建立外部网络连接时,可能的原因包括:端口已被占用、防火墙阻止、网络驱动配置错误等。这个AI工具还提供了API接口,可以集成到CI/CD流程中,在部署前自动检查潜在的网络问题。

SapphireOwl29的博客 1025

Docker | 容器的网络连接

Docker容器的网络基础 Docker提供的网桥 首先,查看一个名为docker0的“网络设备”: [root@localhost ~]# ifconfig docker0 docker0: flags=4163&amp;amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;amp;gt; mtu 1500 inet 172.17.0.1 netmask 255.255.0...

Willian的博客屋 372

Docker 容器的网络连接

文章首发于公众号《程序员果果》 地址:mp.weixin.qq.com/s/DzF-ZwaY4… 一、Docker 容器的网络基础 docker0(Linux的虚拟网桥) 通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务。 [root@localhost ~]# ifconfig docker0 docker...

weixin_33982670的博客 152

docker容器的网络连接及复制镜像

默认情况下,容器被连接到默认桥接网络,这些容器之间可以进行通信,但只能通过容器IP地址进行通信。容器之间如果要通过容器名称进行通信,需要使用传统的选项--link进行连接。第二种方法不需要查看IPv4Address也可以进行连接,即创建容器时使用--link选项在源容器与接收容器之间建立一个安全通道。▪ macvlan:该驱动使用macvlan桥接模式建立容器接口和主机接口之间的连接,为容器提供在物理网络中可路由的IP地址。1、通过正在运行的容器来生成镜像,生成的镜像运行成容器时会保留上一个容器的配置。

AZNwangmou的博客 470

AI如何帮你解决Docker容器网络连接问题

当我们在Docker容器内尝试访问host.docker.internal这个特殊域名时,它应该能解析到宿主机的IP地址。最近在开发一个需要连接本地数据库的Docker项目时,遇到了经典的host.docker.internal网络连接问题。经过一番折腾,我发现用AI辅助工具可以大大简化这个排查过程,今天就把我的经验分享给大家。平台内置的AI助手帮我快速生成了基础代码框架,我只需要根据具体需求做少量调整。最棒的是,平台提供的一键部署功能让我可以立即测试脚本的实际效果,省去了本地搭建环境的麻烦。

EmeraldEagle36的博客 154

Docker 容器的网络连接方式

描述:Docker 还支持第三方网络插件,如 Weave、Calico 和 Flannel 等,这些插件可以提供更高级的网络功能。特点提供更多的网络控制和管理选项。支持复杂的网络拓扑和服务发现。安装与使用根据具体插件的文档进行安装和配置。选择合适的网络模式取决于你的应用场景和需求。例如,对于简单的单机应用,默认桥接网络可能已经足够;而对于需要跨主机通信的分布式应用,则可能需要使用覆盖网络或第三方网络插件。

qq_33240556的博客 1122

XHS-Downloader项目Docker容器网络连接问题分析与解决方案

在使用XHS-Downloader项目的Docker容器时,用户遇到了一个特殊的网络连接问题。当容器以守护进程模式(-d参数)运行时,无法正常下载小红书平台的图片内容,但一旦通过`docker attach`命令连接到容器后,下载功能又能恢复正常工作。 ## 问题分析 从日志信息可以看出,容器在后台运行时出现了`ConnectTimeout`错误,这表明网络请求无法建立连接。这种只在后台运行时...

gitblog_07997的博客 305

六、Docker容器的网络连接

Docker容器的网络连接

q908544703的博客 4369

第五篇 : Docker 容器的网络连接

一、Docker 容器的网络基础 docker0(Linux的虚拟网桥) 通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务。 [root@localhost ~]# ifconfig docker0 docker0: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;...

程序员果果的博客 289
上一篇: linux之iptables使用
下一篇: CentOS7安装Openvswitch
思维的深度
博客等级 码龄11年 2万+粉丝 391原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值