zoukankan      html  css  js  c++  java
  • docker网络知识笔记

    docker容器的网络四种通信模式的总图如下

     Closed container: 封闭式容器,只有lo接口,不参与网络通信,运行与此类容器中的进程仅能访问本地环回接口,仅适用于进程无须网络通信的场景中,例如备份、进程诊断及各种离线任务等。命令行:docker run --rm --net none busybox:latest

    Bridged container:nat桥接式容器,通过容器接口连接到docker0上,默认172.17.0.0/16,在使用 docker 时,没有指定网络模式时被采用的默认的网络模式。桥接式容器一般拥有两个接口:一个环回接口和一个连接至主机上某桥设备的以太网接口。docker daemon启动时,默认会创建一个名为docker0的网桥,并且创建的容器为桥接式容器,其以太网接口桥接至docker0。docker0桥为SNAT桥,因此,桥接式容器可通过此桥接口访问外部网络,但是防火墙则阻止一切从外部网络访问桥接式容器的请求。

    docker run --rm --net bridge busybox:latest
    如果容器上的服务要被外部网络访问,需要在宿主机上为其定义DNAT规则,通过使用docker run 命令的-p 参数-P来实现dnat的端口映射,无须手动的添加规则
    docker run --name b1 --rm -d -p 80:80 hukey/httpd:v0.2

    Joined container:联盟式容器,让两个容器有一分部名称空间是隔离的:文件系统、用户、PID隔离,但是 UTS、NET和IPC是同享同一组,所以两个容器使用同一组网络设备,可通过lo通信。

    [root@kubemaster cw_docker]# docker run -it --name test2 cwcentos:1 /bin/sh
    sh-4.4# cd /etc/hosts
    sh: cd: /etc/hosts: Not a directory
    sh-4.4# vi /etc/hosts
    sh-4.4# vi /etc/re   
    redhat-release  resolv.conf     
    sh-4.4# vi /etc/re
    redhat-release  resolv.conf     
    sh-4.4# vi /etc/resolv.conf 
    sh-4.4# ip add
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    104: eth0@if105: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
        link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
           valid_lft forever preferred_lft forever
    sh-4.4# 
    
    [root@kubemaster ~]# docker run -it --net container:test2(container:容器的名字) --name=test4 cwcentos:1 /bin/bash
    [root@db9fe42ebfd8 /]# ip add
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    104: eth0@if105: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
        link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
           valid_lft forever preferred_lft forever
    [root@db9fe42ebfd8 /]#  

    Open container:开放式容器,开放的网卡是物理网络接口,和物理机同享同一组网络命名空间

  • 相关阅读:
    iOS之蓝牙开发—CoreBluetooth详解
    iOS-GCD使用详解
    iOS—Mask属性的使用
    idea导入eclipse中的maven项目
    SQL Server 查找字符串中指定字符出现的次数
    lLinux的常用命令
    从excel表中生成批量SQL
    ORA-00911: invalid character 错误解决
    sqlserver sp_who2和inputbuffer的使用,连接数
    如果存在这个表,则删除这个表的sql
  • 原文地址:https://www.cnblogs.com/potato-chip/p/14362186.html
Copyright © 2011-2022 走看看