Docker 容器网络互连 自定义网络 程序互相访问

news/2024/7/7 21:47:42 标签: docker, 网络, 容器, 服务器, tomcat, 运维, python

介绍

在开发时候SpirngBoot应用需要连接Mysql数据库 ,两个都在容器内,而容器都是独立的,这时需要配置容器内的网络互联。一旦两个容器加入了自定义网络就可以使用容器名互相访问。

Docker虚拟网卡

在安装Docker时候他会默认安装一个虚拟网卡名为:docker0地址为172.17.0.1/16 前16位不能动

ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:c9ff:fecf:5e84  prefixlen 64  scopeid 0x20<link>
        ether 02:42:c9:cf:5e:84  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 13  bytes 1760 (1.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

查看MYSQL容器IP

 docker inspect  mysql-container
 "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "MacAddress": "02:42:ac:11:00:02",
                    "NetworkID": "a67f43d49997fa282c4a35fbf28c6e896645dd28b4dbe703e1fc47f96ccf3adb",
                    "EndpointID": "ef0fe6a5345cd22ba35a98527c3264639bd655557a5226d08c6010f065de2797",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
            
                }
            }

但是!一般情况下不会去使用IP地址去连接,容器重启或停止了,IP地址就会方式变化。

自定义网络

加入自定义网络容器才可以通过容器名互相访问。使用名称进行连接。

创建自定义网络

创建名为dpc6699的网络

 docker  network  create  dpc6699

查看是否创建成功

docker  network   ls
NETWORK ID     NAME      DRIVER    SCOPE
a67f43d49997   bridge    bridge    local
5fcbb702fe43   dpc6699   bridge    local
bf0149b5e1c6   host      host      local
1ea82115a681   none      null      local

查看网卡

 ip addr
8: br-5fcbb702fe43: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:02:66:90:f4 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-5fcbb702fe43
       valid_lft forever preferred_lft forever

172.18.0.1/16 创建成功

容器加入网络

dpc6699 刚创建的网络名 mysql-container 加入的容器

docker network  connect  dpc6699 mysql-container

查看容器所在网络

 docker inspect mysql-container

有两个一个默认网桥 一个自定义dpc6699

"Networks": {
                "bridge": {
                
                    "MacAddress": "02:42:ac:11:00:02",
                    "NetworkID": "a67f43d49997fa282c4a35fbf28c6e896645dd28b4dbe703e1fc47f96ccf3adb",
                    "EndpointID": "ef0fe6a5345cd22ba35a98527c3264639bd655557a5226d08c6010f065de2797",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",         
                },
                "dpc6699": {
                    "MacAddress": "02:42:ac:12:00:02",
                    "NetworkID": "5fcbb702fe4394de2971db0cb3728bd83de44982916d54e4a19ef1b249f2e252",
                    "EndpointID": "c2280d8177ef778432b86b0ac9f8792c5193542bb3d912b515bf284ea2278940",
                    "Gateway": "172.18.0.1",
                    "IPAddress": "172.18.0.2",                    
            }
        }

创建时加入自定义网络

创建时指定网络,不会在用默认的,而是只有一个dpc6699网络

docker run -d name dd -p 8080:8080 --network dpc6699 mysql-container 

http://www.niftyadmin.cn/n/5535452.html

相关文章

Vue85-Vuex的求和案例

一、需求 二、开发 2-1、index.js中vuex的代码 注意&#xff1a; 书写格式&#xff1a;actions中的函数名用小写&#xff01;mutations中的函数名&#xff0c;用大写。 注意&#xff1a; 2-2、组件count.vue中的代码 2-3、代码优化 三、actions中的context参数 此写法的后…

2024年能在一个月内录用的EI检索会议CCPQT 2024

第三届计算、通信、感知与量子技术国际会议&#xff08;CCPQT 2024&#xff09;将于2024 年10月25日-10月27日在中国珠海召开。&#xff08;往届均已顺利见刊检索&#xff09; 会议信息 大会官网&#xff1a;http://www.ccpqt.org/ 会议地点&#xff1a;中国珠海 会议时间&…

yum命令提示 错误:rpmdb: BDB0113 Thread/process 4153/139708200269632

一、报错信息 [rootDawn yum.repos.d]# yum clean all 错误&#xff1a;rpmdb: BDB0113 Thread/process 4153/139708200269632 failed: BDB1507 Thread died in Berkeley DB library 错误&#xff1a;db5 错误(-30973) 来自 dbenv->failchk&#xff1a;BDB0087 DB_RUNRECOVE…

分布式数据库HBase:从零开始了解列式存储

在接触过大量的传统关系型数据库后你可能会有一些新的问题: 无法整理成表格的海量数据该如何储存? 在数据非常稀疏的情况下也必须将数据存储成关系型数据库吗? 除了关系型数据库我们是否还有别的选择以应对Web2.0时代的海量数据? 如果你也曾经想到过这些问题, 那么HBase将是…

Linux内核 -- ARMv7 与 ARMv8 中的 asmlinkage 作用及使用

ARMv7 与 ARMv8 中的 asmlinkage 作用及使用 asmlinkage 是一个宏&#xff0c;通常在内核代码中使用&#xff0c;用于定义调用约定&#xff0c;特别是指定函数的参数是通过栈传递而不是通过寄存器。它主要用于内核与汇编之间的接口函数&#xff0c;使得参数传递更加一致和明确…

.Net Core 微服务之Consul(一)

目录 一、微服务架构 vs 单体架构 1. 单体架构介绍 2. 微服务架构介绍 3. 微服务架构 vs 单体架构的区别 4. 适用场景和选择 4.1 微服务架构的适用场景和选择 复杂度和规模需求高的应用程序: 技术栈的灵活性需求: 快速迭代和持续交付: 高可用性和容错性的要求: 4…

redis-benchmark 使用

Redis 自带了一个叫 redis-benchmark 的工具来模拟 N 个客户端同时发出 M 个请求。 Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests>] [-k <boolean>]-h <hostname> Server hostname (default 127.0…

代码随想录-二叉搜索树①

目录 二叉搜索树的定义 700. 二叉搜索树中的搜索 题目描述&#xff1a; 输入输出示例&#xff1a; 思路和想法&#xff1a; 98. 验证二叉搜索树 题目描述&#xff1a; 输入输出示例&#xff1a; 思路和想法&#xff1a; 530. 二叉搜索树的最小绝对差 题目描述&#x…