docker的五种网络模式

article/2025/6/6 3:47:35

目录

一、bridge网络(网桥的方式)

二、host网络

三、none网络

 四、自定义网络

 五、container模式


一、bridge网络(网桥的方式)

        可以很清楚的看出容器和宿主机的关系,当我们docker程序运行时,我们会增加一个docker0的网卡,docker0对于容器来说就相当于网关,docker0的ip地址如果没有特殊处理的话,应该都是172.17.0.1/16,当我们运行一个容器时就会产生一个veth开头的网卡,连接到docker0这个网关上面去,将会由docker0网关分配IP地址给这些容器。

         假如我们的主机为ip为192.168.111.111,而docker0为172.17.0.1,网络是通过nat技术进行地址转换的,nat的作用无非就两个,1.减少ipv4的使用。2.创建内网,保护网络安全。所以当我们用到bridge的网络模式时,外部是访问不到我们容器里面的。因此我们需要暴漏容器内部端口,然后将暴漏的端口映射到我们宿主机的端口上面。这样的话我们访问宿主机的IP地址+映射端口号时,我们就可以访问到我们容器内部了。

-p 宿主机端口号:容器端口号  进行端口映射

二、host网络

如果设置为host网络的话,你的容器的IP地址,网关,网卡情况将会和宿主机的一样,想要访问容器的话,就可以直接访问我们的宿主机就行了

可通过这个命令进行network方式的改变,不用像bridge网络一样需要映射端口

 用docker container inspect nginx-host查看详细信息

 

三、none网络

如果设置为none网络的话,我们容器内部将不会配置任何的ip、网关等。这样做的话就可以很好的保护我们的安全了。像用到数据库的容器时,就会使用none网络充分的保护我们的网络。

创建容器

 

容器的详细信息。

 四、自定义网络

创建网络

[root@localhost ~]# docker network create person
0bfa1374a9db677b98f8e3878da254ffc8fa417aafee7caa090dd29302a8f9de
[root@localhost ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
c702a761f35f   bridge    bridge    local
fa3c02c0db8c   host      host      local
02014fc193c7   none      null      local
0bfa1374a9db   person    bridge    local

我们可以看到创建的网络person为bridge(网桥模式),查看网络详细信息

[root@localhost ~]# docker network inspect person 
[{"Name": "person","Id": "0bfa1374a9db677b98f8e3878da254ffc8fa417aafee7caa090dd29302a8f9de","Created": "2022-09-13T13:31:25.517304736+08:00","Scope": "local","Driver": "bridge","EnableIPv6": false,"IPAM": {"Driver": "default","Options": {},"Config": [{"Subnet": "172.18.0.0/16","Gateway": "172.18.0.1"}]},"Internal": false,"Attachable": false,"Ingress": false,"ConfigFrom": {"Network": ""},"ConfigOnly": false,"Containers": {},"Options": {},"Labels": {}}
]

上图我们可以看出网管为172.18.0.1,子网网段为172.18.0.0/16。所以应该又增加了一个新的网卡在我们宿主机里面,ip addr。

 用person网络启动一个容器看一下详细信息,我们可以看出网关为172.18.0.1,ip地址为172.18.0.2。

 我们用172.17.0.2的容器去ping这个172.18.0.2的容器发现ping不通,但宿主机能ping通,说明在不同的网络中的容器是相互隔离的。

 如果我们想让两个在不同的网络中的容器进行互通。可以使用以下命令进行连接

## docker network connect 网络name 容器name
docker network connect person nginx-ubuntu

我们查看该容器连接前后的网络变化。我们会发现容器内部会新增加一个网卡,IP地址为172.18.0.3,网关为172.18.0.1。

前:

后:

 

 

 我们再用该容器ping一下,发现网络已通。

 五、container模式

这个模式下就是新创建的容器和使用的容器共用一个network namespace。

## 用 --network container:容器名字 创建
[root@localhost ~]# docker run -itd --name nginx-container --network container:nginx-person nginx-ubuntu

文章来源:https://blog.csdn.net/qq_48480384/article/details/126822723
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://chatgpt.dhexx.cn/article/9AcPN2XE.shtml

相关文章

Docker--网络模式

文章目录 一、Docker网络实现原理二、Docker的网络模式1.Host模式2.Container模式3.None模式4.Bridge模式 三、自定义网络1.查看网络模式列表2.查看容器信息(包含配置、环境、网关、挂载、cmd等等信息)3.指定分配容器IP地址 四、暴露端口五、为容器创建端…

Docker系列---网络模式 | Dockerfile | 参数讲解 | 详细说明

网络模式 | Dockerfile Docker 原生网络Docker 网络图解Docker 四种网络模式Host 模式Container模式None模式Bridge模式 Docker 网络自定义查看网络列表自定义网络固定IP暴露端口在宿主机环境执行容器内命令systemctl 命令 Docker 镜像分层Dockerfile 操作指令例:do…

七、Docker网络模式详解

目录 一、docker网络概述1、docker网络实现的原理2.容器的端口映射1).端口映射2).四种端口映射3).端口映射演示(1).随机端口映射(-P)(2).指定端口映射(-p 宿主机端口:容器端口)(3).指定网卡随机端口映射(-p ::&#xf…

使用navicat远程连接mysql时报2059错误解决方法

navicat连接mysql时报2059错误解决方法 报错原因解决方案1、管理员权限打开cmd2、修改加密规则及密码3、退出,重启mysql 报错原因 这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_pa…

navicat2012连接MySQL时提示2059错误

出现2059这个错误的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。通过网络查找发现我们可以将mysql用户登录的加密规则修改为mysql_native_password。 解决方法: 1.打开cmd&#xff0…

MySQL8:关于进入navicat连接MySQL出现2059界面

一.进入navicat连接MySQL出现2059页面: 原因:MySQL8之前版本中加密规则为mysql_native_password,MySQL8以后的加密规则为caching_sha2_password. 解决:将mysql用户登录加密规则修改为mysql_native_password即可. 二.解决方案: …

2059-Authentication plugin‘caching_sha2_password‘cannot be loaded

2059-Authentication plugin’caching_sha2_password’cannot be loaded 原因 由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式:caching_sha2_password 老的加密验证方式:mysql_native_password 解决方式 1、打开MySQL 8.0 Command Lin…

sqlyog连接mysql报错2058或者Navicat连接报错2059

下载了mysql8.0版本&#xff0c;结果连接的时候报了一些错误&#xff0c;这里进行总结 下载了mysql8.0版本&#xff0c;结果连接的时候报了一些错误&#xff0c;这里进行总结1、sqlyog连接mysql报错2058或者Navicat连接报错20592、sqlyog连接mysql报错 :连接失败 localhost<…

MySql 8.0.11 客户端连接失败:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: ....

近期,换了新笔记本,重新安装了MySql数据库和客户端工具Navicat Premium 12。我是从官网上下载的MySql数据库&#xff0c; 版本为8.0.11&#xff0c;链接&#xff1a;https://dev.mysql.com/downloads/mysql/ 当数据库和客户端安装成功后&#xff0c;我使用客户端连接接数据库时…

Django数据迁移:django.db.utils.OperationalError: (2059, <NULL>) ----2059错误解决方案

数据库迁移&#xff1a; 迁移是Django同步你对模型所做更改到你的数据库模式的方式 python manage.py makemigrations 将应用下的models.py文件生成一个中间文件&#xff0c;并保存在migrations文件夹中 python manage.py migrate 执行迁移程序实现迁移&#xff0c;将每个应用…

mysql8版本2059报错解决方法

mysql由原来一直使用的5.6切换到8版本&#xff0c;本地安装完成后&#xff0c;使用命令可以正常连接&#xff0c;但是使用navicat一直报2059的错误&#xff0c;如下图&#xff1a; 问题原因&#xff1a; 由于在MySql8之前的版本&#xff0c;默认的加密规则是mysql_native_pass…

navicat premium连接数据库出现2059错误

安装navicat之后新建连接出现了2059的错误 打开doc窗口wind输入cmd打开 输入 mysql -u root -p 输入root用户的密码 选择数据库 输入 use mysql 查看加密的规则 输入 select Host,User,plugin from mysql.user; 加密方式是新的加密方式 更改回原来的加密方式 输入 A…

mysql 连接数据库时error 2059 解决

mysql 连接数据库时error 2059 解决 原因解决方法管理员运行cmd修改加密方式 原因 mysql8新版本发布&#xff0c;安装后出现2059错误。原因是在mysql8之前的版本中加密规则为mysql_native_password&#xff0c;而在mysql8以后的加密规则为caching_sha2_password。 所以通过命令…

虚拟机连接数据库报错2059

一、进入Navicat连接MySQL出现下面的2059界面二、解决办法 1.windowsR输入cmd进入页面 2.输入mysql -u root -p 然后输入密码进入数据库 3.输入use mysql 出现Database changed 4.输入select user,host from user; 目的为了查看user的root 对应host是什么 我的对应为% 5.输…

关于Navicat连接MySQL出现2059问题解决方法

一、进入Navicat连接MySQL出现下面的2059界面 原因&#xff1a;mysql8之前版本中加密规则为mysql_native_password&#xff0c;mysql8以后的加密规则为caching_sha2_password&#xff0c;将mysql用户登录加密规则修改为mysql_native_password即可&#xff01; 二、解决方案 1.…

2059 - Authentication plugin ‘caching_sha2_password‘ cannot be loaded:报错的解决办法

目录 一、报错说明 二、原因 三、解决方法 一、报错说明 在windows本地安装mysql之后&#xff0c;用Navicat连接&#xff0c;然后报错&#xff1a; 2059 - Authentication plugin caching_sha2_password cannot be loaded 二、原因 由于目前已有的客户端连接软件还不支持…

【C++】2059:【例3.11】买笔(信息学奥赛)

好了&#xff0c;今天的内容就是买笔了&#xff0c;内容的详细意思也就是根据输入的表示星期几的数字&#xff0c;对应输出它的英文名称。&#xff08;博主正在冲200粉丝&#xff0c;喜欢的赶紧关注&#xff01;&#xff01;&#xff01;&#xff09; 【题目描述及其目的】 20…

Navicat 连接 MySql 报错2059时的解决方法

My报错2059时的操作方法 当你使用navicat连接MySQL 的时候&#xff0c;会出现报错2059.如下图所示&#xff1a; 按照如下操作&#xff1a; 1&#xff1a;在电脑中搜索 MySQL 8.0 Command Line Client - Unicode 并打开 2&#xff1a;输入密码连接到数据库 3&#xff1a;输入…

Navicat连接MySql8+出现2059错误解决办法

今天使用Navicat连接mysql的时候报了2059的错误&#xff0c;为了解决这个看似不难的问题&#xff0c;我也是试了不少方法&#xff0c;在这里给大家分享下我的经验。 首先出现2059这个错误的原因是因为在mysql8之前的版本中加密规则为mysql_native_password。但是在mysql8以后的…

2059 - authentication plugin...错误解决方法

2059 - authentication plugin...错误解决方法 Navicat 连接MySQL数据库出现错误&#xff1a;2059 - authentication plugin caching_sha2_password的解决方法。 错误原因&#xff1a;MySQL新版本&#xff08;8以上版本&#xff09;的用户登录账户加密方式是【caching_sha2_p…