zoukankan      html  css  js  c++  java
  • docker容器如何与宿主机通信

    在宿主机(windows/mac/linux)安装并启动docker后,会自动创建3个docker network:bridge、host、none。可以用docker network ls命令查看。

    用docker network inspect bridge、docker network inspect host、docker network inspect none命令查看各docker network,会发现只有bridge有网段,假如是

    {
        "Subnet":"192.168.10.0/24",
        "Gateway":"192.168.10.1"
    }

    一、假如宿主机是linux系统,有一个监听8000端口的其他进程

    在宿主机上执行ifconfig命令,可以发现有一个docker0网卡,注意观察其网段和docker network inspect bridge的网段是一致的,宿主机在此网段下也分配了一个ip,一般是网段中的第一个ip,假如是192.168.10.1。

    1)假如用默认的bridge模式启动容器,即在启动时不指定network参数或者指定了--network bridge,

    在容器中执行ifconfig命令,可以发现容器的ip也在上面的网段中,假如是192.168.10.2。

    在容器中,ping 192.168.10.1,可以ping通。在宿主机中ping 192.168.10.2,可以ping通。

    在容器中,可以用192.168.10.1:port的方式访问宿主机的服务。

    2)假如容器用host网络模式启动,即在启动时添加了--netwok host参数,

    那么容器会和宿主机共享网络,直接telnet 127.0.0.1 8000可以telnet通。

    二、假如宿主机是mac,有一个监听8000端口的其他进程

    宿主机不会有docker0网卡

    1)假如用默认的bridge模式启动容器

    参考docker安装nginx

    2)假如容器用host网络模式启动

    容器不能访问mac宿主机的服务

    3)用自定义的docker network模式启动容器

    在宿主机上执行docker network create n1,用docker network inspect n1命令查看,发现n1有一个新的网段,假如是

    {
        "Subnet":"172.18.0.0/16",
        "Gateway":"172.18.0.1"
    }

    在启动容器时指定--network n1

    在容器中,指定ifconfig命令,可以看到容器的ip在n1的网段中,也可以看到容器的ip,假如是172.18.0.2。

    在容器中ping 172.18.0.1,可以ping通。

    在宿主机中ping 172.18.0.2,ping不通。在宿主机执行ifconfig命令,看不到n1。那么宿主机的ip是多少呢?

    在容器中用host.docker.internal指代宿主机ip,可以通过在容器中执行ping host.docker.internal命令得到宿主机的ip。用gateway.docker.internal指代gateway,ping gateway.docker.internal可以获取到网关地址。

    在容器中,telnet host.docker.internal 8000是可以telnet通的。

    三、假如宿主机windows系统

    windows电脑就不要搞docker啦!费tm半天劲也搞不好

  • 相关阅读:
    消息队列rabbitmq/kafka
    centos下redis安全相关
    Ubuntu安装
    python 操作redis集群
    redis 发布订阅
    redis基础
    解决Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/cqupt/paging/dao/User.xml
    mongodb启动出现Failed to connect to 127.0.0.1:27017 after 5000ms milliseconds,giving up
    MongoDB的安装及安装为windows服务
    解决jsp表达式不能解析的问题
  • 原文地址:https://www.cnblogs.com/koushr/p/14559481.html
Copyright © 2011-2022 走看看