【Docker学习总结】15.Docker容器的网络连接

十一、容器化 vs 虚拟化-Docker 使用 Docker 容器使用、镜像使用、容器连接、仓库管理、Dockerfile、Docker Compose、Docker Machine、Swarm 集群管理 阅读详情

一.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

CentOS:  yum install bridge-utils

 

运行一个docker容器,在容器中查看它的网络设备(如果没有ifconfig命令,通过apt-get install -y net-tools,若是centos镜像就用yum安装。这里面不在多提了,下面都是这样的。)

docker已经自动创建了eth0的网卡。Ctrl+p Ctrl+q退出容器。再运行如下查看网桥的状态

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

【注意】一个dokcer容器对应一个虚拟网卡veth*

自定义docker0

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

docker run -it centos /bin/bash

yum install net-tools 

ifconfig

 

【注意】一般不推荐直接修改docker0网桥,建议添加一个网桥,也就是下面的配置方式!

 

  • 添加虚拟网桥
sudo brctl addbr br0

sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0

 

  • 修改docker配置文件

  

vim /etc/docker/daemon.json

{
 "bridge":"br0"
}

【注意】daemon.json文件是自己创建的

  • 重启docker
systemctl daemon-reload

systemctl restart docker 
  • docker 启动容器,观察容器的eth0是否在规定的ip段上!

 

二.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

 构建测试镜像:

docker build -t="nan_df_test" .

查看镜像是否创建成功:

dokcer images

 

1.允许所有容器互联

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

--icc=true 默认

【注意】容器退出的方式是Ctrl+p Ctrl+q。

可以看见cct2可以ping通cct1,并且访问cct1上的nginx服务!

容器的ip地址实际上是一个不可靠的连接,因为它会随着容器的启动而改变。理论上是这样的,但是我了具体的测试,试了好几次ip地址都没有变化!但是还是要介绍一下下面的操作方式。

--link

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

查看--link给我带来的变化:

查看环境变量:

查看hosts文件:

【注意】当容器的ip变化时,hosts的文件内容以及环境变量都会动态的改变!

 

【提示】推荐--link的方式!

 

三、拒绝所有容器连接

Docker守护进程的启动选项

--icc=false

修改vim /etc/docker/daemon.json 

重启Docker服务:

systemctl daemon-reload

systemctl restart docker 

测试:

四、允许特定容器间的连接

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 systemctl restart docker 重新启用docker的服务

重新启动容器即可

 

演示:

配置文件

重启docker服务:

启动docker容器:

 

成功ping通! 

注意cct4容器的创建与cct3一致!只是名字不通:

docker run -it --name cct4 --link=cct1:webtest nan_df_test

 

【提示】我个人在做实验室时,我把iptables规则清空之后,再次重启,发现依旧ping不通!后来reboot重启了多次,莫名其妙的就好了~~~~

 

 

 

 

 

 

 

 

 

 

告别DLTS的模糊地带:手把手教你用拉普拉斯深能级瞬态光谱(LDLTS)精准揪出半导体缺陷 本文详细介绍了拉普拉斯深能级瞬态光谱(LDLTS)技术在半导体缺陷检测中的高分辨率解决方案。相比传统DLTS,LDLTS通过拉普拉斯变换和正则化算法,将分辨率提升至1meV,有效解析复杂重叠缺陷谱,适用于硅、GaN等材料的精确缺陷分析。文章涵盖LDLTS原理、系统搭建、测量流程及工业应用案例,为半导体工艺优化提供强大工具。 阅读详情

相关推荐

SAP软件外币评估系统配置与操作

文章摘要:本文详细介绍了SAP系统中外币评估的流程、策略及系统操作。外币评估是期末关账的重要环节,主要针对外币未清项目及资产/负债进行汇率重估,生成评估差异过账以反映真实财务状况。文中阐述了三种评估策略(不评估、增量评估、期末评估冲回)及适用场景,并提供了SAP系统外币评估的具体操作步骤(FAGL_FCV/FAGL_FC_VAL事务码)。同时,讲解了货币资金科目和未清项管理科目的评估差异处理方式,以及相关的系统配置(OB59、OBA1等)。文章还区分了已实现和未实现汇兑损益的会计处理,为企业外币业务管理提供

weixin_40672823的博客 1963

【Docker】Docker网络

从上面的实例可以看出,在宿主机中会产生veth,而在容器中则是eth0,而且两个是成对的,例如容器c1中是27:eth0@if28而宿主机中是28:vethc6328db@if27。使用create创建的。

kuangd_1992的博客 998

【TI毫米波雷达】IWR6843AOPEVM-G与DCA1000EVM实战:从硬件连接到数据流解析

本文详细解析了TI毫米波雷达开发套件IWR6843AOPEVM-G与DCA1000EVM的硬件连接、模式配置及数据流处理全流程。针对官方手册中的常见配置错误,提供了避坑指南和实测验证的正确设置方法,包括开关配置、网络参数等关键步骤。通过mmWave Studio软件配置雷达参数,并深入解析数据采集与处理流程,帮助开发者高效实现毫米波雷达应用开发。

weixin_30653023的博客 368

docker网络配置

Docker 在安装后自动提供 3 种网络,可以使用命令查看Docker 使用 Linux 桥接,在宿主机虚拟一个 Docker 容器网桥(docker0),Docker 启动一个容器时会根据 Docker 网桥的网段分配给容器一个 IP 地址,称为,同时 Docker 网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的直接通信。

vincent_duan的专栏 4498

ISO15118-20协议测试实战:用Efficient XML库验证26条命令编解码(附完整代码)

本文分享了ISO15118-20协议测试实战经验,重点探讨了使用Efficient XML库对26条命令进行EXI编解码验证的过程。通过搭建测试环境、编写自动化程序并与官方工具链进行交叉比对,文章深入分析了4条命令编码结果不一致的原因,并提供了完整的排查思路与C代码示例,旨在帮助开发者确保电动汽车充电通信的协议一致性。

weixin_29284657的博客 109

【AutoSar CP】SoAd模块

比如对于特定的PDU,其PduId在程序编译时就确定了,但是在代码运行中,该PduId可能需要发送到不同的远端ip,这时就需要用SoAd来设置连接远端地址信息。SoAdSocketConnectionGroup(连接参数)SoAdSocketRoute(接收数据)SoAdRoutingGroup(开关)SoAdPduRoute(发送数据)

至道无难,唯嫌拣择。 1689

Docker学习笔记(八)Docker0网络解析

Docker0 清空环境 清空所有的images docker rmi -f $(docker images -qa) 这里使用的我的阿里云服务器 ip addr查看网卡 Linux ip 命令与 ifconfig 命令类似,但比 ifconfig 命令更加强大,主要功能是用于显示或设置网络设备。 ip 命令是 Linux 加强版的的网络配置工具,用于代替 ifconfig 命令 ip address // address:设备上的协议(IP或IPv6)地址 lo下所表示的是本机回环地址

liutao43的博客 1362

同济大学824复试全攻略:从笔试到面试的实战解析

本文详细解析同济大学824复试全流程,包括专业课笔试、外语听力与口语、专业外语笔试和专业综合面试的备考策略。重点分享数字信号处理、计算机网络等专业课的高效学习方法,以及专业外语速成和口语面试技巧,助力考生全面提升复试表现。

qq_27496129的博客 1055

docker学习(十八、network介绍)

首先,我们要知道什么是 Docker 网络。简单来说,它就是 Docker 中用于实现容器间通信的一个东西。

qq_35716085的博客 1万+

CGNS快速入门到实战(一):CGNS静态链接库编译

近期,由于需要将CGNS格式加入到教研组自编CFD求解器DUBHE中,所以本人展开了对于CGNS的学习。CGNS快速入门到实战这一系列分成三篇文章展开叙述,具体有:(一)CGNS静态链接库编译;(二)VS配置调用CGNS静态链接库编写;(三)CGNS文件及案例展示。本篇文章重点讲述CGNS静态链接库编译。

ahang_99的博客 3819

unitree-G1外接 USB 麦克风完整配置指南

首先,将type-c麦克风插入G1机器人的USB口后,记录下USB麦克风的卡号(card)和设备号(device),通常显示为 card 1: Device [USB Audio Device]

m0_47999117的博客 600

Docker 常见使用

Docker 常见使用

云满笔记 2893

OpenClaw实战系列03:Slack/Telegram国际版接入实战指南

在当今的软件开发和工作流自动化中,将项目管理工具与即时通讯平台集成已成为提高团队协作效率的关键。OpenClaw作为一个开源的自动化工具,通过接入Slack和Telegram国际版,可以实现实时通知、自动化任务触发和团队协作的无缝对接。本文将详细介绍如何实现OpenClaw与这两个主流即时通讯平台的集成。OpenClaw是一个开源的自动化工作流引擎,支持多种触发器和执行器,能够帮助开发团队实现CI/CD流程、任务调度、监控告警等自动化场景。模块化设计:支持插件化扩展多触发器支持。

PeterPan的博客 588

六、Docker容器的网络连接

Docker容器的网络连接

q908544703的博客 4369

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Docker容器管理

官方文档中说attach后可以通过CTRL-C来detach,但实际上经过我的测试,如果container当前在运行bash,CTRL-C自然是当前行的输入,没有退出;如果container当前正在前台运行进程,如输出nginx的access.log日志,CTRL-C不仅会导致退出容器,而且还stop了。创建容器时没有添加参数 --restart=always ,导致的后果是:当 Docker 重启时,容器未能自动启动。默认情况下,container拥有对设备的读,写,创建设备文件的权限。

程序员咏哥的博客 998

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

docker网络连接——docker network connect命令

博客作为学习笔记记录,若有理解或表述错误,欢迎指出 docker network connect 命令是用于将docker容器连接到某个网络中,或者与其他容器建联,容器可以使用容器名或者容器ID。 用法 docker network connect [OPTIONS] NETWORK CONTAINER 选项 名称,简写 默认 说明 --alias 为...

ksj367043706的博客 1万+

Docker容器——容器之间的互联

创建一个bridge模式的网络 [root@foundation19 ~]# docker network create --driver bridge my_net1 89b97e70be47c758684ca2bd34e86242a0643be9a01fd297f5487b5cdef4f82c [root@foundation19 ~]# docker network ls NETWORK...

Treasured ——的博客 2063

docker容器的学习笔记

目录 Docker入门学习笔记(一) 1. 什么是Docker? 2. Docke的目标 3. Docker通常应用场景 4. Docker的基本组成 补:Docker容器相关技术简介 安装Docker 5...

weixin_30525825的博客 648

15分钟搞定!Noodle开源教育平台Docker容器化部署全攻略

Noodle开源教育平台是一款功能强大的开源教育平台,专为教育机构和学习者打造。通过Docker容器化部署,你可以快速搭建起一个稳定、高效的在线教育环境,让教学和学习变得更加便捷。本攻略将带你一步步完成Noodle开源教育平台的Docker容器化部署,无需复杂的配置,15分钟即可轻松搞定! ## 一、准备工作:环境与工具安装 在开始部署Noodle开源教育平台之前,我们需要确保系统中已经安装了

gitblog_00439的博客 741

Docker学习

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。Compose 使用的三个步骤:使用 Dockerfile 定义应用程序的环境。使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。

q12ERTYU的博客 6487

docker--扩展学习-网络--命令--15

docker–扩展学习-网络–命令–15 1、创建网络 1.1、简单创建容器 # 创建 docker network create net111 # 查看 docker network inspect net111 1.2、指定参数创建容器 # ----创建---- docker network create -d bridge \ # 指定子网络,在bridge网络中只可以指定一个子网络,而在overlay网络中支持多个子网络。 --subnet=192.168.0.0/16 \ # 指定网关 -

zhou920786312的博客 2207

Docker不同容器之间的网络访问

Docker不同容器之间的网络访问 1.默认情况下使用Docker0作为路由器进行网络分配和通信 Docker安装成功后,会安装一个docker0的网卡,由docker0分配网络和通信,整体流程图如下: 从上图中可以看出,容器直接的通信不是直连的,而是通过docker0间接通信,docker默认使用的是桥接模式,每启动一个容器,docker0会自动分配IP地址给容器,例如:docker0的ip为172.17.0.1,则第一个启动的容器ip为172.17.0.2,后启动的容器依次类推。 默认的docker0

qq_36816062的博客 2370

docker容器创建的流程详解

普通启动的容器 runoob@runoob:~$ docker run ubuntu:15.10 /bin/echo “Hello world” Hello world 各个参数解析: **docker:**Docker 的二进制执行文件。 **run:**与前面的 docker 组合来运行一个容器。 ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库Docker Hub下载公共镜像。 **/bin/echo “

m0_67391521的博客 1327

docker-学习

Docker是一个开源的应用容器引擎,基于Go语言开发,并遵守Apache2.0协议开源。Docker是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。使用Linux容器来部署应用称为集装箱化,这使得Docker可以轻松部署应用程序。

你渴望力量吗? 936

【Docker开篇第二篇】Docker 掌握核心技术

docker run命令可以与docker commit命令结合使用,以改变容器运行的命令。docker run命令首先在指定映像上creates可写的容器层,然后使用指定的命令starts它。也就是说,docker run等价于API 然后。使用docker start,可以重新启动已停止的容器,并保存之前的更改。这里的命令集比较多,如果你不太喜欢的话,可以迅速下滑值实例讲解区。我之所以把它放在最前面,是因为,我们以后要一直和它们交到,是需要熟悉的核心。呼!累死宝宝了,,,这里的命令类型真的太多了。...

半身风雪 6204
上一篇: 新版本Docker的daemon.json文件的参数
下一篇: 【Docker学习总结】16.Docker容器与外网的连接
Rita楠神
博客等级 码龄9年 27粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值