docker---网络

docker的网络模式:

1、桥接模式:创建docker时不需要指定网络类型,默认模式。
2、host模式: 容器将不会虚拟出自己的网卡,也没有自己的ip地址,全部使用宿主机的ip和端口。
3、container模式:容器和容器之间共用一个ip地址和端口。
4、nono模式:docker容器有自己的network-space,但是这个容器没有任何网络设置。这个容器没有网卡,没有ip,没有路由,只有lo回环网络。在none模式下,容器不可以联网。
5、自定义网络:我们可以给创建一个自己定义网段。

桥接模式(docker默认模式)

桥接模式:一种共享通信的方式,用于连接两个不同网络段的设备
桥接设备工作在osi模型的第二层,数据链路层,转发数据帧,根据mac地址。类似于交换机,只能转发同一网段,通过泛洪广播请求mac地址。

docker网络就是基于桥接模式实现的:

1.虚拟网络桥:安装开启docker之后, docker进程就会自动创建一个虚拟网络桥(docker0),
是一个虚拟的网络设备,类似于物理网络设备的交换机。 

2、分配唯一的ip地址, 每次运行一个容器, docker进程都会分配唯一的且未被其他容器占用的ip地址给容器。这个IP地址是桥接模式网络的子网中。

3、容器和主机通信:通过桥接模式,容器可以和主机直接通信,容器可以访问主机上的运行服务。主机也可以通过桥接网络docker:0,来访问容器的进程(iptables的nat地址转换,在主机上做了地址转换)


docker的网桥是宿主机虚拟出来的,并不是一个真正存在的网络设备,外部网络无法找到。外部网络无法直接访问docker:0分配给容器的ip地址。
可以给容器做一个端口映射。容器创建完成后,端口不能做映射。

实际上,docker是在宿主机和容器之间做了一个iptables的Nat地址转换。

随机端口映射

docker run -itd --name 容器名 -P 镜像:版本号 /bin/bash-P 在创建容器时。在宿主机和容器之间做一个端口映射。不加端口,随机给。容器的端口是不变的。例
docker run -itd --name testl -P nginx:1.22.0 /bin/bash

指定端口映射

docker run -itd --name 容器名 -p linux端口:容器端口 镜像:版本号 /bin/bash
-p:指定端口,人为设置固定的端口映射。指定端口进入容器开启服务。
例
docker run -itd --name testl -p 4300:80 nginx:1.22.0 /bin/bash

host模式

容器将不会虚拟出自己的网卡,也没有自己的ip地址,全部使用宿主机的ip和端口。
创建容器时可以指定网络模式 --network host

docker run -itd --name 容器名 --network host 镜像名:版本号 /bin/bash例
docker run -itd --name test1 --network host nginx /bin/bash

公用模式,如果是单个容器运行,可以使用host模式。


container模式:

容器和容器之间共用一个ip和端口

docker run -itd --name 容器名 -- network=container:容器名 镜像名:版本号 /bin/bash例
docker run -itd --name test2 -- network=container:test1 nginx:latest /bin/bash

nono模式:

docker容器有自己的network-space,但是这个容器没有任何网络设置。这个容器没有网卡,没有ip,没有路由,只有lo回环网络。在none模式下,容器不可以联网。用于容器功能测试。

docker run - itd --name 容器名 --network=none 镜像名:版本号 /bin/bashdocker run - itd --name test4 --network=none nginx:laster /bin/bash

自定义网络:

可以给docker创建一个自定义网段。虚拟机内可以访问,win不可以

查看docker的网络信息

docker network ls
-------------------------------------------------------------------------------------------NETWORK ID     NAME      DRIVER    SCOPENETWORK ID这个是docker网络唯一的网络id
NAME	docker网络的名称
DRIVER	docker网络的动程序
SCOPE	表示网络的作用范围-------------------------------------------------------------------------------------------
创建容器网络
docker network create --subnet=网段 --opt "com.docker.network.bridge.name" ="自定义网卡名称" 自定义网络的名称例:
docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name" ="docker1" mynetworkdocker network create创建一个docker虚拟网卡
--subnet=172.18.0.0/16:自定义一个网段和声明子网掩码
--opt "com.docker.network.bridge.name"="docker1":可以不加,但是网卡名称比较难以识别。
mynetwork:自定义网络的名称
创建容器并指定IP地址
docker run -itd --name 容器名 --network bridge --ip ip地址 镜像名:版本号 /bin/bash例
docker run -itd --name nginx1 --network bridge --ip 172.18.0.10 nginx:latest /bin/bash

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

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

相关文章

第五届计算机能力挑战赛国赛C语言组题解(专科组)

前言:   前两天计算机能力挑战赛国赛结束了,拿着题做了一遍,发现难度真的不大,比省赛简单多了,只是有时候可能有的同学拿着题,没认真仔细去读,或者说紧张了导致自己发挥不好吧。以下是个人的题…

【运维】将Linux的硬盘当内存用,Linux内存不够用的时候如何用硬盘提升内存

文章目录 内存不够用,可以用硬盘当内存吗如何取消这种交换空间交换空间是优先使用的还是说原始内存是会被优先使用的 内存不够用,可以用硬盘当内存吗 是的,可以使用硬盘作为虚拟内存来扩展容器中的内存。这个过程被称为“交换”或“交换空间…

Django 模型操作-分页(七)

一、连接MySql数据库 1、先安装MySQL 2、再安装MySQL驱动 使用mysqlclient pip install mysqlclient 如果上面的命令安装失败, 则尝试使用国内豆瓣源安装: pip install -i https://pypi.douban.com/simple mysqlclient 二、在settings.py中配置 三、 book表的数据…

Android系统启动过程-uBoot+Kernel+Android

摘要:本文是参考大量网上资源在结合自己查看源代码总结出来的,让自己同时也让大家加深对Android系统启动过程有一个更加深入的了解!再次强调,本文的大多数功劳应归功于那些原创者们,同时一些必要的参考链接我会一一附上…

1009 说反话

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小…

【机器学习实训项目】黑色星期五画像分析

目录 前言 一、项目概述 1.1 项目简介 1.2 项目背景 1.3 项目目标 二、数据分析 2.1 导入库 2.2 数据基本信息 三、画像分析 3.1 画像1:消费金额Top10 3.2 画像2:高频消费Top10 3.3 画像3:人均消费金额Top10 3.4 画像4:男女消费对…

创投课程第四期 | Web3一级市场投资框架的演变及投资人能力框架的构成

协会邀请了来自Zonff Partners的合伙人——Colin,作为VC创投课程第4期的嘉宾,在北京时间12月9日(周六)下午14:00 PM-15:00 PM于蚂蚁链科技产业创新中心进行线下分享,届时将与所有对Web3投资、创业心怀热忱的朋友们共同探讨《WEB3一级市场投资…

双向链表(数据结构与算法)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

程序启动时访问了未初始化的类指针引发内存访问违例导致程序崩溃的问题排查

目录 1、问题说明 2、使用Windbg动态调试去初步分析 3、使用Windbg详细分析 4、最后 VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门…

20、XSS——XSS跨站脚本

文章目录 一、XSS漏洞概述1.1 XSS简介 二、XSS漏洞分类2.1 反射型XSS2.2 存储型XSS2.3 DOM型XSS 三、XSS payload构造以及变形3.1 XSS payload构造3.2 XSS payload 变形 一、XSS漏洞概述 1.1 XSS简介 XSS被称为跨站脚本攻击(Cross-site scripting)&…

linux dpdk 介绍

DPDK(Data Plane Development Kit)是一个由英特尔发起的开源项目,旨在提供一个快速、高性能的数据平面开发工具包,使网络应用能够在通用处理器上实现网络功能虚拟化(NFV)和软件定义网络(SDN&…

k8s volumes and data

Overview 传统上,容器引擎(Container Engine)不提供比容器寿命更长的存储。由于容器被认为是瞬态(transient)的,这可能会导致数据丢失或复杂的外部存储选项。Kubernetes卷共享 Pod 生命周期,而不是其中的容器。如果容器终止,数据…

排序的简单理解(上)

1. 排序的概念及引用 1.1 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作(按照我们的需求能够有序的将数据信息排列起来)。 稳定性:假…

TeeChart.NET 2023.11.17 Crack

.NET 的 TeeChart 图表控件提供了一个出色的通用组件套件,可满足无数的图表需求,也针对重要的垂直领域,例如金融、科学和统计领域。 数据可视化 数十种完全可定制的交互式图表类型、地图和仪表指示器,以及完整的功能集&#xff0c…

医疗设备智慧管理助力医院提质增效,阿基米德amp;健康界实践分享

近日,苏州阿基米德网络科技有限公司与医疗领域头部级媒体健康界,联合举办“数智为擎 提质增效——医学装备智慧管理创新发展论坛”的直播活动。 直播现场,来自上海交通大学医学院附属同仁医院、中华医学会航海医学分会、苏州阿基米德的专家们…

统信UOS_麒麟KYLINOS上使用命令行配置NTP服务器

原文链接:统信UOS/麒麟KYLINOS上使用命令行配置NTP hello,大家好啊,今天我要给大家介绍的是在统信UOS/麒麟KYLINOS操作系统上使用命令行配置NTP(Network Time Protocol)服务器的方法。在内网环境下,许多企业…

13、C++异常处理

13、c异常处理 抛出异常捕获异常未抛出异常时的流程抛出异常时的流程捕获异常匹配顺序异常说明异常处理构造函数中的异常析构函数中的异常标准库异常类 抛出异常 throw 异常对象可以抛出基本类型的对象,如:throw -1;throw "内存分配失败!";也可以抛出类类…

AVP对纵向控制ESP(Ibooster)的需求规范

目录 1. 版本记录... 3 2. 文档范围和控制... 4 2.1 目的/范围... 4 2.2 文档冲突... 4 2.3 文档授权... 4 2.4 文档更改控制... 4 3. 功能概述... 5 4. 系统架构... 6 5. 主要安全目标... 7 5.1 …

FreeSSL申请免费域名证书

本文详细讲解如何申请免费证书,需要先准备好域名,将服务器IP和域名绑定。 1、注册FreeSSL账号 网址: https://freessl.org/ 2、申请流程 登录后首页输入域名,然后点击Create certificate,跳转到证书申请页面。 或者…

Pytorch深度强化学习1-6:详解时序差分强化学习(SARSA、Q-Learning算法)

目录 0 专栏介绍1 时序差分强化学习2 策略评估原理3 策略改进原理3.1 SARSA算法3.2 Q-Learning算法 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理,并且采用Pytorch框架对常见的强化学习算法、案例进行实现,帮助读者理解并快速上手开发。同时&#…