Docker网络的学习

简介: 这章主要是对docker网络进行一个基本的学习,这也是一个很重要的知识点

Docker网络

理解Docker

清空所有环境

docker是如何处理容器网络访问的?

#查看容器的内部网络地址  ip addr

docker exec -it  tomcat01 ip addr

原理

1、我们每启动一个docker容器,docker就会给docker容器分配一个ip。我们只要安装了docker,就会有一个网卡docker0,桥接模式,使用的技术是evth-pair技术

#容器带来的网卡,都是一对一对的
#evth-pair 就是一对的虚拟设备接口,他们都是成对出现的,一端连接协议,一端彼此相连
#正因为有这个特性,evth-pair充当一个桥梁,连接各种虚拟网络设备
#容器之间也是可以互相ping通的

--link

我们编写了一个微服务,database URL = ip,项目不重启,数据库ip换掉了,我们希望可以处理这个问题,可以使用名字来访问这个容器。

#docker exec -it tomcat02 ping tomcat01          ping不通

#通过--link 可以解决网络联通问题
#docker run -d -P --name tomcat03 --link tomcat02  tomcat

#docker exec -it tomcat03 ping tomcat02          可以ping通

自定义网络

#查看所有的docker网络
docker network ls

网络模式

bridge:桥接docker

测试

#我们直接启动命令 --net bridge,而这个就是我们的docker0
docker run -d -P --name tomcat01 tomcat
docker run -d —P --name tomcat01 --net bridge tomcat

#docker特点,默认域名不能访问,--link可以打通连接

#我们可以自定义一个网络!
#--driver bridge
#--subnet 192.168.0.0/16
#--gateway 192.168.0.1
docker network create --driver  bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

#oot@ji-VirtualBox:~# docker network create --driver  bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

39613d7e1aa93c20b52759d0f1cfe3277ca1de10cda41825430f78362d433eaa

root@ji-VirtualBox:~# docker network inspect mynet

[
 {
        "Name": "mynet",

        "Id": "39613d7e1aa93c20b52759d0f1cfe3277ca1de10cda41825430f78362d433eaa",

        "Created": "2023-08-30T16:48:49.435201961+08:00",

        "Scope": "local",

        "Driver": "bridge",

        "EnableIPv6": false,

        "IPAM": {

            "Driver": "default",

            "Options": {},

            "Config": [

                {

                    "Subnet": "192.168.0.0/16",

                    "Gateway": "192.168.0.1"

                }

            ]

        },

#在自定义网络下创建容器
docker run -d -P --name tomcat-net-01 --net mynet tomcat     #在tomcat镜像和自定义的网络下创建tomcat-net-01容器

网络连通

image.png

image.png

#测试 打通 可以将一个容器的网络直接放入mynet我网络之下
docker network connect mynet tomcat01

#一个容器两个ip地址
相关文章
|
5天前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
91 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
17天前
|
安全 Docker 容器
docker的默认网络模式有哪些
Docker 默认网络模式包括:1) bridge:默认模式,各容器分配独立IP,可通过名称或IP通信;2) host:容器与宿主机共享网络命名空间,性能最优但有安全风险;3) none:容器隔离无网络配置,适用于仅需本地通信的场景。
31 6
|
21天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
54 7
|
27天前
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
42 5
|
1月前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
1月前
|
安全 网络协议 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!
|
1月前
|
网络协议 安全 NoSQL
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
|
1月前
|
Docker 容器
【赵渝强老师】Docker的None网络模式
Docker容器在网络方面实现了逻辑隔离,提供了四种网络模式:bridge、container、host和none。其中,none模式下容器具有独立的网络命名空间,但不包含任何网络配置,仅能通过Local Loopback网卡(localhost或127.0.0.1)进行通信。适用于不希望容器接收任何网络流量或运行无需网络连接的特殊服务。
|
1月前
|
Docker 容器
【赵渝强老师】Docker的Host网络模式
Docker容器在网络环境中是隔离的,可通过配置不同网络模式(如bridge、container、host和none)实现容器间或与宿主机的网络通信。其中,host模式使容器与宿主机共享同一网络命名空间,提高性能但牺牲了网络隔离性。
|
1月前
|
Kubernetes Docker 容器
【赵渝强老师】Docker的Container网络模式
Docker容器在网络环境中彼此隔离,但可通过配置不同网络模式实现容器间通信。其中,container模式使容器共享同一网络命名空间,通过localhost或127.0.0.1互相访问,提高传输效率。本文介绍了container模式的特点及具体示例。
下一篇
DataWorks