安装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

最新文章

  1. 【代码笔记】iOS-看图听故事
  2. iframe并排横着显示
  3. 微信公众号token的asp.net脚本
  4. Cadence ORCAD CAPTURE元件库介绍
  5. CSS制作彩虹效果
  6. 【Scala 】Akka库
  7. Creating Excel files with Python and XlsxWriter——Introduction
  8. SpringBoot分布式 - Dubbo+ZooKeeper
  9. BZOJ3239Discrete Logging——BSGS
  10. SharePoint PowerShell 修改母版页
  11. [Entity Framework+MVC复习总结1]-WebForm与Asp.Net MVC
  12. CCPC-Wannafly Winter Camp Day4 Div1 - 咆咆咆哮 - [三分+贪心]
  13. C# Control.Invoke匿名委托
  14. 一:requests爬虫基础
  15. python-day81--Ajax
  16. c# async/await异步编程死锁的问题
  17. phpwind部署问题
  18. ffmpeg 合并aac格式音频文件
  19. python学习使用
  20. oracle闪回(flashback)的部分实用操作(彻底删除的除外)

热门文章

  1. C++ STL 排序查找最大的5个
  2. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_05-新增页面-服务端-接口测试
  3. Linux命令之date
  4. MapReduce编程实例
  5. LODOP纸张高度不定的纯文本累计高度
  6. 神经网络手写数字识别numpy实现
  7. How to Create and Use Facebook Messenger Codes (June 2019)
  8. 【ARM-Linux开发】【DSP开发】AM5728介绍
  9. OpenGL.资料积累
  10. Java集合框架概述和集合的遍历