Docker网络功能

news2024/11/23 21:12:28

基本网络功能

Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。使用docker network子命令来管理Docker网络。

外部访问容器可通过端口映射实现,启动容器时使用-p参数指定映射关系。-p可多次使用来绑定多个端口。使用docker port命令查看当前映射的端口配置。

容器互联

可以使用--link参数使容器互联。建议将容器加入自定义的Docker网络来连接多个容器。

新建网络

使用docker network create -d bridge my-net命令创建一个网络,其中-d参数指定Docker网络类型,有bridge、overlay等。

容器连接网络

运行容器时,通过--net参数指定要连接的网络。

高级网络配置

docker网络结构如下图所示

快速配置指南

下面是一个跟 Docker 网络相关的命令列表。其中有些命令选项只有在 Docker 服务启动的时候才能配置, 而且不能马上生效。

  • -b BRIDGE 或 --bridge=BRIDGE 指定容器挂载的网桥
  • --bip=CIDR 定制 docker0 的掩码
  • -H SOCKET... 或 --host=SOCKET... Docker 服务端接收命令的通道
  • --icc=true|false 是否支持容器之间进行通信
  • --ip-forward=true|false 请看下文容器之间的通信
  • --iptables=true|false 是否允许 Docker 添加 iptables 规则
  • --mtu=BYTES 容器网络中的 MTU

下面2个命令选项既可以在启动服务时指定,也可以在启动容器时指定。在 Docker 服务启动的时候指定则会成为默认值,后面执行 docker run 时可以覆盖设置的默认值。

  • --dns=IP_ADDRESS... 使用指定的DNS服务器
  • --dns-search=DOMAIN... 指定DNS搜索域

最后这些选项只有在 docker run 执行时使用, 因为它是针对容器的特性内容。

  • -h HOSTNAME 或 --hostname=HOSTNAME 配置容器主机名
  • --link=CONTAINER_NAME:ALIAS 添加到另一个容器的连接
  • --net=bridge|none|container:NAME_or_ID|host 配置容器的桥接模式
  • -p SPEC 或 --publish=SPEC 映射容器端口到宿主主机
  • -P or --publish-all=true|false 映射容器所有端口到宿主主机

配置DNS

配置全部容器的 DNS ,可以在 /etc/docker/daemon.json 文件中增加以下内容。

{
    "dns" : [
        "114.114.114.114",
        "8.8.8.8"
    ]
}

实例

创建一个点到点连接,两个容器之间可以直接通信,而不通过主句网桥进行桥接,解决方法是创建一对peer接口分别放到两个容器中,配置成点到点链路类型即可。

启动2个容器,网络模式设置为none,如下:

$ docker run -i -t --rm --net=none base /bin/bash
root@1f1f4c1f931a:/#

$ docker run -i -t --rm --net=none base /bin/bash
root@12e343489d2f:/#

找到进程号, 然后创建网络命名空间的跟踪文件。

$ docker inspect -f '{{.State.Pid}}' 1f1f4c1f931a
2989

$ docker inspect -f '{{.State.Pid}}' 12e343489d2f
3004

$ sudo mkdir -p /var/run/netns
$ sudo ln -s /proc/2989/ns/net /var/run/netns/2989
$ sudo ln -s /proc/3004/ns/net /var/run/netns/3004

创建一对 peer 接口, 然后配置路由

$ sudo ip link add A type veth peer name B
$ sudo ip link set A netns 2989
$ sudo ip netns exec 2989 ip addr add 10.1.1.1/32 dev A
$ sudo ip netns exec 2989 ip link set A up
$ sudo ip netns exec 2989 ip route add 10.1.1.2/32 dev A
$ sudo ip link set B netns 3004
$ sudo ip netns exec 3004 ip addr add 10.1.1.2/32 dev B
$ sudo ip netns exec 3004 ip link set B up
$ sudo ip netns exec 3004 ip route add 10.1.1.1/32 dev B

现在这 2 个容器就可以相互 ping 通, 并成功建立连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/988881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VR全景拍摄发展如何?在各行业应用中有优势吗?

现如今,虚拟现实技术正在以惊人的速度改变着我们的生活,而VR全景拍摄作为一种创新的拍摄方式,可以为大家带来全新的视觉体验。通过VR全景拍摄,可以将平面画面变得更加逼真、更具沉浸感,让人仿佛置身于真实场景之中。 近…

蚂蚁发布金融大模型:两大应用产品支小宝2.0、支小助将在完成备案后

9月8日,在上海举办的外滩大会上,蚂蚁集团正式发布金融大模型。据了解,蚂蚁金融大 模型基于蚂蚁自研基础大模型,针对金融产业深度定制,底层算力集群达到万卡规模。该大 模型聚焦真实的金融场景需求,在“认知…

恭贺弘博创新2023下半年软考(中/高级)认证课程顺利举行

为迎接2023年下半年软考考试,弘博创新于2023年9月2日举行了精品的软考中/高级认证课程,线下线上学员都积极参与学习。 在课程开始之前,弘博创新的老师为学员们提供了详细的学习资料和准备建议,以确保学员们在课程中能够跟上老师的…

如何排查网站及APP数据泄露的源头

近年来数据泄露安全事件频发,在今年的hw网络安全攻防演练中,获取敏感信息、数据泄露等漏洞的得分也越来越高,我们SINE安全近十年来成功的帮助了许多客户,查找到了数据泄露的原因,在这里向大家分享我们的经验与心得&…

程序员面试逻辑题

红白帽子推理 答案: 这个题有点像数学归纳法,就是假设有 A A A和 B B B两个人是黑色的帽子,这样的话第一次开灯, A A A看到 B B B是黑色的,其他人都是白色的,那么 A A A会觉得 B B B是那个黑色的&#xff0…

【2023高教社杯】B题 多波束测线问题 问题分析、数学模型及参考文献

【2023高教社杯】B题 多波束测线问题 问题分析、数学模型及参考文献 1 题目 1.1 问题背景 多波束测深系统是利用声波在水中的传播特性来测量水体深度的技术,是在单波束测深的基础上发展起来的,该系统在与航迹垂直的平面内一次能发射出数十个乃至上百个…

从gles,vulkan到metal(二)-- 同步和内存

无论以任何形式本篇文章内容,请注明来自leonnwei的csdn blog 在第一章节中我们讨论了图形API的基本数据结构和图形指令的提交机制,在指令的生成,提交,执行过程中,在复杂而又高度并行的GPU管线中,必然存在着…

安全模型中的4个P

引言:在安全模型中,经常会碰到PDR,PPDR,IPDRR,CARTA-PPDR等模型,其中的P,是predicet?是prevent?还是protect?还是policy呢? 一、4P字典意思解释 1、predict&…

【C++基础】3. 数据类型

文章目录 【 1. 数据类型分类 】1.1 字符型1.2 整型1.3 浮点型1.4 布尔型1.5 无类型1.6 枚举类型1.7 其他类型1.8 类型占用大小输出 【 2. typedef 类型声明 】 使用编程语言进行编程时,我们需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置&am…

iOS创建Category类别(扩展类)

我要为UIButton扩展其他系统提供以外的方法,这就要用到扩展类了 创建步骤如下图: 步骤一:New File 步骤二:选中Objective-c File 步骤三:File名称随便起(这里写了AaaBtn),继承Class为UIButton 步骤四&…

4. xaml Button按钮

1.运行图片 2.源码 <Grid><!--BorderBrush="BlueViolet" 边框颜色--><!--BorderThickness="2" 边框线的粗细--><

软件测试适合零基础学么

零基础学习软件测试不失为一个好的选择&#xff0c;虽然IT行业里对小白最友好的非软件测试莫属了&#xff0c;但是也要看你个人在学习软件测试这件事上面花费了多少的时间和努力了~ 每年毕业季&#xff0c;IT行业依然是比较热门且收入是最高的行业。对于应届毕业生来说想要进入…

【python自动化】七月PytestAutoApi开源框架学习笔记(二)

执行流程 注&#xff1a;请先阅读作者的README.md文档https://gitee.com/yu_xiao_qi/pytest-auto-api2/blob/master/README.md 本节内容目录如下&#xff1a; 文章目录 执行流程目录结构参数配置入口文件-run.pypytest.ini test_case初始化数据缓存解析yaml测试数据 测试用例…

学习Bootstrap 5的第八天

目录 加载器 彩色加载器 实例 闪烁加载器 实例 加载器大小 实例 加载器按钮 实例 分页 分页的基本结构 实例 活动状态 实例 禁用状态 实例 分页大小 实例 分页对齐 实例 面包屑&#xff08;Breadcrumbs&#xff09; 实例 加载器 彩色加载器 在 Bootstr…

微信个人号如何实现自动回复,秒回客户消息?

企业在开展私域运营沉淀用户的过程中&#xff0c;免不了要与来自各个渠道的用户打交道。在客户关注公众号、视频号或者发送QQ消息后&#xff0c;通过设置欢迎语&#xff0c;主动推送内容。 那么微信是不是也可以通过设置像它们一样可以自动欢迎语呢&#xff1f; 其实是可以的。…

谷歌为什么不收录你的网站?

答案是&#xff1a;因为你的文章质量太差&#xff0c;建议使用GPC爬虫池促收录。 谷歌作为全球最大的搜索引擎&#xff0c;对于许多网站主、营销人员和SEO专家来说&#xff0c;确保自己的网站被谷歌收录是至关重要的。 但有时&#xff0c;即使我们做了很多努力&#xff0c;我…

Mybatis中 collection 和 association 标签 的区别

<collection> 和 <association> 是 MyBatis 中用于定义映射关系的标签&#xff0c;它们的区别如下&#xff1a; 目标对象类型&#xff1a; <collection> 用于表示集合属性&#xff0c;即一个属性对应多个关联对象。<association> 用于表示关联属性&…

深入了解vue2没有在data中定义的属性非响应式的问题

关于vue2没有在data中定义的属性非响应式的问题 vue2 响应式的原理及实现vue2 解决此类的部分 vue2 响应式的原理及实现 vue2 响应式数据 是通过 es5 中的 Object.defineProperty 方法来实现&#xff0c;把 data 定义的所有属性&#xff0c;转换为 get/set 方法&#xff0c;使…

java应用CPU飙高的排查思路及解决方案

1、使用top命令查看系统cpu占用情况&#xff0c;找出占用最高的进程pid top 2、使用如下命令查找进程内占用cpu最高的线程id ps H -eo pid,tid,%cpu | grep 最高的进程pid查询出进程内2276这个线程占用cpu最高 # pid&#xff08;进程id&#xff09;、tid&#xff08;线程id&…

移动和pc端的微信支付和支付宝支付(持续更新)

最近开发了一个web商城,需要支持pc端,手机端,且需要支持微信支付和支付宝支付。 pc端,pc端用户点击支付,直接用弹窗弹出一个支付二维码即可手机端的支付宝支付,现在自己尝试了下微信内打开一个支付宝支付链接,发现是可以打开,如图: 问了一下,说是工信部反垄断的政策,…