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

docker 第四篇 网络的更多相关文章

  1. [docker]docker的四种网络方式

    声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! bridge方式(默认) H ...

  2. docker的四种网络模式

    /* 1. host模式 : docker run 使用 --net=host指定 docker使用的网络实际上和宿主机一样 2. container模式: 使用 --net=container:co ...

  3. Python之路(第三十四篇) 网络编程:验证客户端合法性

    一.验证客户端合法性 如果你想在分布式系统中实现一个简单的客户端链接认证功能,又不像SSL那么复杂,那么利用hmac+加盐的方式来实现. 客户端验证的总的思路是将服务端随机产生的指定位数的字节发送到客 ...

  4. Docker——四种网络模式

    docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式:  bridge模式:使用–net =bridge指定,默认设置:  host模式 ...

  5. docker+k8s基础篇四

    Docker+K8s基础篇(四) pod控制器 A:pod控制器类型 ReplicaSet控制器 A:ReplicaSet控制器介绍 B:ReplicaSet控制器的使用 Deployment控制器 ...

  6. JDownload: 一款可以从网络上下载文件的小程序第四篇(整体架构描述)

    一 前言 时间过得真快,距离本系列博客第一篇的发布已经过去9个月了,本文是该系列的第四篇博客,将对JDownload做一个整体的描述与介绍.恩,先让笔者把记忆拉回到2017年年初,那会笔者在看Unix ...

  7. python学习之路网络编程篇(第四篇)

    python学习之路网络编程篇(第四篇) 内容待补充

  8. [转帖]Docker四种网络模式

    Docker(十四)-Docker四种网络模式 https://www.cnblogs.com/zhuochong/p/10069293.html 计算机网络相关的知识 非常有用.. Docker 安 ...

  9. Docker学习第四天(Docker四种网络模式)

    Docker四种网络模式 实现原理 Docker使用Linux桥接(参考<Linux虚拟网络技术>),在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根 ...

随机推荐

  1. Centos D-Bus connection: Operation not permitted

    解决办法: 首先要先在后台启动一个 CentOS7 容器(注意不要少参数): docker run -d -e "container=docker" --privileged=tr ...

  2. 三种单点登录SSO的实现原理

    单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任.单点登录在大型网站里使用得 ...

  3. 【leetcode】500_Keyboard Row

    problem 500. Keyboard Row 题意:判断给出的某个单词是否可以使用键盘上的某一行字母type得到: 注意大小写的转换: solution1: 使用set保存三行字符,查看每个字符 ...

  4. upload上传通关游戏

    第一关:后缀名限制,抓包改一下后缀. 前端脚本检测文件扩展名.当客户端选择文件点击上传的时候,客户端还没有向服务器发送任何消 息,前端的 js 脚本就对文件的扩展名进行检测来判断是否是可以上传的类型 ...

  5. 字符编码笔记:ASCII,Unicode 和 UTF-8(理解)

    1.ASCII 码 美国制定的字符编码规则,对英语字符与二进制位之间的关系做了统一规定. 占一个字节,8 位,最多可表示 2^8 = 256 种状态(字符) 实际共有 128 个字符,只占用一个字节的 ...

  6. fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC sha

    调试程序时出现以下问题:d:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(24): fatal e ...

  7. 在Linux上显示某个进程的线程的几种方式

    方法一:PS 在ps命令中,"-T"选项可以开启线程查看.下面的命令列出了由进程号为的进程创建的所有线程. 1.$ ps -T -p 方法二: Top top命令可以实时显示各个线 ...

  8. 2.4容错保护:Hystrix

    在ribbon使用断路器 改造serice-ribbon 工程的代码,首先在pox.xml文件中加入spring-cloud-starter-hystrix的起步依赖: 引入 <dependen ...

  9. Thinking In Java 4th Chap4 控制执行流程

    Foreach语法: 例如:float f[]=new float [10]; for(float x:f){/*****/} for(char c:"Afaslkd aslfjala al ...

  10. python中int是什么类型

    python中的基本数据类型 1:虽然python中的变量不需要声明,但使用时必须赋值整形变量浮点型变量字符型2:可以一个给多个变量赋值,也可以多个给多个变量赋值3:python3中有6个标准数据类型 ...