首页 > 其他分享 >[转]Docker 两个不同网络间实现连通

[转]Docker 两个不同网络间实现连通

时间:2024-04-03 17:25:50浏览次数:22  
标签:02 docker 连通 tomcat ping 网络 192.168 Docker net

原文地址:

Docker 两个不同网络间实现连通 - 西瓜君~ - 博客园

一、启动不同网络的容器

1、启动两个bridge(自带默认)桥接的容器

[root@yang ~]# docker run -it --name tomcat1 tomcat
[root@yang ~]# docker run -it --name tomcat2 tomcat
# 查看容器
[root@yang ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fcdd4c02da9c tomcat "catalina.sh run" 2 days ago Up 2 days 8080/tcp tomcat2 346962a1d73b tomcat "catalina.sh run" 3 days ago Up 2 days 8080/tcp tomcat1

2.启动两个mynet(自定义)桥接的容器

[root@yang ~]# docker run -it --name tomcat-net-01 --net mynet tomcat
[root@yang ~]# docker run -it --name tomcat-net-02 --net mynet tomcat
# 查看容器
[root@yang ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8685e41a5962 tomcat "catalina.sh run" 2 days ago Up 2 days 8080/tcp tomcat-net-02 25e1b7c89af4 tomcat "catalina.sh run" 2 days ago Up 2 days 8080/tcp tomcat-net-01

二、目前两个容器连通性

示例图:

 

测试:

[root@yang ~]# docker exec -it tomcat01 ping tomcat-net-01
ping: tomcat-net-01: Temporary failure in name resolution

以上,明显提示ping不通,直接报错,因为这本来就是不可能连通的!

 三、两个不同网络,容器间互通

1.查看操作语法

复制代码
[root@yang ~]# docker network connect --help

Usage:    docker network connect [OPTIONS] NETWORK CONTAINER

Connect a container to a network

Options:
      --alias strings           Add network-scoped alias for the container
      --driver-opt strings      driver options for the network
      --ip string               IPv4 address (e.g., 172.30.100.104)
      --ip6 string              IPv6 address (e.g., 2001:db8::33)
      --link list               Add link to another container
      --link-local-ip strings   Add a link-local address for the container
复制代码

2.实际操作指令

[root@yang ~]# docker network connect mynet tomcat1

3.测试两者间是否互通

#  tomcat1 ping tomcat-net-01可以ping通!#tomcat1 ping tomcat-net-01可以ping通!

[root@yang ~]# docker exec -it tomcat1 ping tomcat-net-01
PING tomcat-net-01 (192.168.0.2) 56(84) bytes of data.
64 bytes from tomcat-net-01.mynet (192.168.0.2): icmp_seq=1 ttl=64 time=0.209 ms
64 bytes from tomcat-net-01.mynet (192.168.0.2): icmp_seq=2 ttl=64 time=0.108 ms
[root@yang ~]# docker exec -it tomcat1 ping tomcat-net-01 PING tomcat-net-01(192.168.0.2)56(84)字节的数据。 来自tomcat-net-01.mynet(192.168.0.2)的64个字节:icmp_seq=1 ttl=64 time=0.209 ms 来自tomcat-net-01.mynet(192.168.0.2)的64个字节:icmp_seq=2 ttl=64 time=0.108 ms

#  tomcat1 ping tomcat-net-02 也可以ping通!#tomcat1 ping tomcat-net-02也可以ping通!

[root@yang ~]# docker exec -it tomcat1 ping tomcat-net-02
PING tomcat-net-02 (192.168.0.3) 56(84) bytes of data.
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.184 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.275 ms
[root@yang ~]# docker exec -it tomcat1 ping tomcat-net-02 PING tomcat-net-02(192.168.0.3)56(84)字节的数据。 来自tomcat-net-02.mynet(192.168.0.3)的64个字节:icmp_seq=1 ttl=64 time=0.184 ms 来自tomcat-net-02.mynet(192.168.0.3)的64个字节:icmp_seq=2 ttl=64 time=0.275 ms

#  tomcat2 ping tomcat-net-02 ping不通(因为没有开通tomcat2到mynet网桥中)!

[root@yang ~]# docker exec -it tomcat2 ping tomcat-net-02
ping: tomcat-net-02: Temporary failure in name resolution
[root@yang ~]# docker exec -it tomcat2 ping tomcat-net-02 ping:tomcat-net-02:名称解析中的临时故障

4.查看mynet内发生变化

复制代码
[root@yang ~]# docker network inspect mynet
[
    {
        "Name": "mynet",
        "Id": "68bb4c7c3f1c6808ab2ce49a966e11440f560b89080b6a20f9c9b715d690519b",
        "Created": "2021-01-29T16:10:07.565642609+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.0.0/16",
                    "Gateway": "192.168.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "25e1b7c89af4744e9a7df48373886dc8f906c2e35dca2e644bf8deb81a6853db": {
                "Name": "tomcat-net-01",
                "EndpointID": "3e2a2d4e4807c4c7058f248720e653ffdb094238a6c34df403d501cf68fa559b",
                "MacAddress": "02:42:c0:a8:00:02",
                "IPv4Address": "192.168.0.2/16",
                "IPv6Address": ""
            },
            "346962a1d73badd263d10d76578ece0e6c2b33e1db08b264fb1fc66affd4a34a": {
                "Name": "tomcat1",
                "EndpointID": "d6eb17193d981338f7a1a178ace1751c9b8a6623a389072f71142deb41bddfb5",
                "MacAddress": "02:42:c0:a8:00:04",
                "IPv4Address": "192.168.0.4/16",
                "IPv6Address": ""
            },
            "8685e41a59628a81c69752f9785065f5985c2165ef9ee33edc5acec1d801fa51": {
                "Name": "tomcat-net-02",
                "EndpointID": "08e234cf42025805acc2bd7ae6a2dee602090e5f1f5e66ef5b7753e5654f348d",
                "MacAddress": "02:42:c0:a8:00:03",
                "IPv4Address": "192.168.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]
复制代码

以上,显示mynet网桥中多出来一个tomcat1。

 

 

结论:

假如要跨网络操作别人,就需要用docker network connect 来实现连通!

 

 

 

 

 

 

 

 

标签:02,docker,连通,tomcat,ping,网络,192.168,Docker,net
From: https://www.cnblogs.com/dirgo/p/18113132

相关文章

  • Docker安装hertzbeat
    快速安装开源监控软件hertzbeat官方链接hertzbeat官网地址:https://hertzbeat.com/hertzbeat官方文档:https://hertzbeat.com/docs/docker安装#拉取镜像dockerpulltancloud/hertzbeat#启动容器dockerrun-d-p1157:1157-p1158:1158\-eLANG=zh_CN.UTF-8\......
  • docker里面安装mariadb,设置用户名密码,登录mariadb
    5.启动Docker服务并设置开机自启动:  ```  sudosystemctlstartdocker  sudosystemctlenabledocker  ```###步骤2:在Docker中安装Nginx1.拉取Nginx镜像:  ```  sudodockerpullnginx  ```2.运行Nginx容器:  ```  sudo......
  • 深度学习-卷积神经网络--MT CNN-人脸检测-推理-65
    目录参考链接:https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/104980479?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171211076616800222824039%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171211076616800222824......
  • docker构建镜像——Dockerfile
    COPY格式COPY[--chown=<用户>:<组>]<源>...<目的>COPY[--chown=<用户>:<组>]["<源>"..."<目的>"]案例[root@hmm~]#mkdiryum3-centos[root@hmm~]#lsanaconda-ks.cfgdocker-hellohello.csize......
  • 为Python应用选择最好的Docker镜像 转载
    在使用Python的早些年,为了解决Python包的隔离与管理virtualenvwrapper就成为我的工具箱中重要的一员。后来,随着Python3的普及,virtualenvwrapper逐渐被venv所替换。毕竟venv是Python3的标配,优点是显而易见的。而这几年,应用场景的的复杂性越来与高,无论是开发还是部......
  • 自学黑客(网络安全),一般人我劝你还是算了吧
    一、自学网络安全学习的误区和陷阱1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多一般人如果想要把编程学好再开始......
  • docker------docker入门
    ......
  • ENet——实时语义分割的深度神经网络架构与代码实现
    概述在移动设备上执行实时像素级分割任务具有重要意义。现有的基于分割的深度神经网络需要大量的浮点运算,并且通常需要较长时间才能投入使用。本文提出的ENet架构旨在减少潜在的计算负担。ENet在保持或提高分割精度的同时,相比现有的分割网络,速度提升了18倍,参数量减少了79倍......
  • PowerShell 命令清单,包括系统管理、文件操作、网络管理等方面的命令
    PowerShell命令清单,包括系统管理、文件操作、网络管理等方面的命令:系统管理:Get-Help:获取帮助信息。Get-Process:查看系统中正在运行的进程。Stop-Process:停止指定的进程。Restart-Computer:重新启动计算机。Set-ExecutionPolicy:设置脚本执行策略。Get-Service:获取系统服务......
  • 解决Mac无法共享网络问题
    前言部分小伙伴在使用Mac共享网络会出现各种问题:无法共享共享后,手机无法连接网络解决办法重置网络即可。三个步骤轻松解决访达(Finder)前往文件夹:/Library/Preferences/SystemConfiguration删除3个文件到废纸篓com.apple.network.identification.plist<这个找......