zoukankan      html  css  js  c++  java
  • docker 第四篇 网络

    安装docker以后自动添加三种网络方式

      bridge: 表示桥接网络 (在本地自动创建一个软交换机)

      host: 表示让容器使用宿主机的网络名称空间

      none: 表示没有网络 不能执行网络通信。

        

    创建容器的同时会创建一对网卡 一半在物理机上(自动关联bridge)一半在容器里面

    可以通过以下命名查看关联关系

      yum -y install bridge-utils

      brctl show

      ip link show

    容器的网络名称空间 UTS IPC是可以被共享的

    添加网络名称空间

      前奏

        rpm -q iproute

        ip netns help

      添加:

        ip netns add r1

      在网路名称空间中执行命令:

        ip netns exec r1 ifconfig -a  (此时网络名称空间是没有被激活的,需要添加虚拟网卡对)

      手动添加虚拟网卡对:

        ip link add name veth1.1 type veth peer name veth1.2

          name 指定第一半的名字

          type 类型

          peer 指定另一半的相关信息

      把虚拟网卡移动的名称空间里面:

        ip link set dev weth1.2 netns r1

      给名称空间里面的虚拟网卡改名:

        ip netns exec r1 ip link set dev veth1.2 name eth0

      激活宿主机上的虚拟网卡:

        ifconfig veth1.1 10.1.0.1/24 up

      激活名称空间里面的网卡:

        ip netns exec r1 ifconfig eth0 10.1.0.2/24 up

      查看名称空间里面的虚拟挖网卡ip:

        ip netns exec r1 ifconfig

    使用封闭式容器 (none)

      docker run --name t3 -it --network none --rm busybox:latest

    指定bridge网络(默认就是bridge)可以和当前主机的其它容器通信

      docker run --name t3 -it --network bridge --rm busybox:latest

      创建容器的时候指定主机名:

        docker run --name t3 -it --network bridge -h t3.com --rm busybox:latest

      暴露端口给其他主机访问:

        docker run --name t3 -it -p 80 --rm wang/httpd:v0.2

          -p 随机生成物理端口

          -P 不用指定端口 会自己暴露

          

      查看容器端口映射到具体哪个物理地址

        docker port 容器名称

      指定容器端口绑定物理机的某个ip 且ip是随机的

        docker run --name t3 -it -p 172.30.0.14::80 --rm wang/httpd:v0.2

      指定绑定容器的80端口到物理机的80:

        docker run --name t3 -it -p 80:80 --rm wang/httpd:v0.2

      即指定端口又指定ip:

        docker run --name t3 -it -pip:80:80 --rm wang/httpd:v0.2

        

      

     联盟还是容器(让两个容器共享一个名称空间) Joined container

      两个名称空间各自使用自己的User Mount  Pid,  共享UTS Net 和IPC

    共享其他容器的网络名称空间:

      docker run --name b6 --network container:b5 -it --rm busybox

    共享主机的地址给容器:

      docker run --name b5 --network host -it --rm busybox

    配置修改docker默认的ip地址段

      直接在/etc/docker/daemon.json 文件添加

      "bip":"ip/掩码",   其余的会根据ip自动生成

    在docker远程连接其他docker (默认不可以,因为docker默认监听的是本地的unit协议)

      需要修改监听一个正常的tcp监听端口即可,也是在/etc/docker/daemon.json 文件添加

        "hosts":["tcp://0.0.0.0:2375", "unix":///var/run/docker.sock]

      远程连接: docker -H ip:375 command

    根据需求添加网络:

      docker network create -d bridge --subnet "172.26.0.0/16" --gateway "172.26.0.1" mybr0

    创建容器时 把网络加到自己创建到ip段里面:

      docker run --name t5 -it --rm --net mybr0 busybox

    We are down, but not beaten. tested but not defeated.
  • 相关阅读:
    Visual Studio 2010使用Visual Assist X的方法
    SQL Server 2000 评估版 升级到 SQL Server 2000 零售版
    双网卡多网络单主机同时访问
    开发即过程!立此纪念一个IT新名词的诞生
    delphi dxBarManager1 目录遍历 转为RzCheckTree2树
    5320 软件集合
    delphi tree 从一个表复制到另一个表
    DELPHI 排课系统课表
    长沙金思维 出现在GOOGLE的 金思维 相关搜索里啦!!
    如何在DBGrid的每一行前加一个单选框?
  • 原文地址:https://www.cnblogs.com/guniang/p/11609421.html
Copyright © 2011-2022 走看看