精华内容
下载资源
问答
  • 通过iflink找到网卡对应关系 1. 在宿主机上执行命令ip link $ ip link ...... 13: veth56ecf40@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue mast er docker0 state UP mode DEFAULT ...

    通过iflink找到网卡对应关系

    1. 在宿主机上执行命令ip link

    $ ip link
    ......
    13: veth56ecf40@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue mast
    er docker0 state UP mode DEFAULT group default
        link/ether 56:17:10:68:88:b1 brd ff:ff:ff:ff:ff:ff link-netnsid 4
    15: veth0f80cbf@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue mast
    er docker0 state UP mode DEFAULT group default
        link/ether fa:e6:8f:3b:01:54 brd ff:ff:ff:ff:ff:ff link-netnsid 5
    

    2. 在容器内查看iflink文件

    root@336043b07211:/# docker exec -it nginx-1 /bin/bash
    root@336043b07211:/# cat /sys/class/net/eth0/iflink
    13
    

    或者通过ethtool来查看
    在容器中执行:ethtool -S eth0

    root@336043b07211:/# ethtool -S eth0
    NIC statistics:
         peer_ifindex: 13
    

    这样就可以确定:
    nginx-1这个容器在物理机上对应的veth pair是veth56ecf40@if12
    (13对应宿主机13:)

    tcpdump在容器外网络抓包

    这个 13: 就是我们要找的 网卡信息,抓包的时候指定对应的网卡 veth56ecf40, 现在可以抓包了:

    $ tcpdump -i veth56ecf40 port 5050 -A
    

    Tcpdump选项介绍

    -A 以ASCII格式打印出所有分组,并将链路层的头最小化。
    -c 在收到指定的数量的分组后,tcpdump就会停止。
    -C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size 中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数 file_size 的单位是兆字节(是1,000,000字节,而不是1,048,576字节)。
    -d 将匹配信息包的代码以人们能够理解的汇编格式给出。
    -dd 将匹配信息包的代码以c语言程序段的格式给出。
    -ddd 将匹配信息包的代码以十进制的形式给出。
    -D 打印出系统中所有可以用tcpdump截包的网络接口。
    -e 在输出行打印出数据链路层的头部信息。
    -E 用spi@ipaddr algo:secret解密那些以addr作为地址,并且包含了安全参数索引值spi的IPsec ESP分组。
    -f 将外部的Internet地址以数字的形式打印出来。
    -F 从指定的文件中读取表达式,忽略命令行中给出的表达式。
    -i 指定监听的网络接口。
    -l 使标准输出变为缓冲行形式,可以把数据导出到文件。
    -L 列出网络接口的已知数据链路。
    -m 从文件module中导入SMI MIB模块定义。该参数可以被使用多次,以导入多个MIB模块。
    -M 如果tcp报文中存在TCP-MD5选项,则需要用secret作为共享的验证码用于验证TCP-MD5选选项摘要(详情可参考RFC 2385)。
    -b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。
    -n 不把网络地址转换成名字。
    -nn 不进行端口名称的转换。
    -N 不输出主机名中的域名部分。例如,‘nic.ddn.mil‘只输出’nic‘。
    -t 在输出的每一行不打印时间戳。
    -O 不运行分组分组匹配(packet-matching)代码优化程序。
    -P 不将网络接口设置成混杂模式。
    -q 快速输出。只输出较少的协议信息。
    -r 从指定的文件中读取包(这些包一般通过-w选项产生)。
    -S 将tcp的序列号以绝对值形式输出,而不是相对值。
    -s 从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。
    -T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc远程过程调用)和snmp(简单网络管理协议;)。
    -t 不在每一行中输出时间戳。
    -tt 在每一行中输出非格式化的时间戳。
    -ttt 输出本行和前面一行之间的时间差。
    -tttt 在每一行中输出由date处理的默认格式的时间戳。
    -u 输出未解码的NFS句柄。
    -v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
    -vv 输出详细的报文信息。
    -w 直接将分组写入文件中,而不是不分析并打印出来。

    展开全文
  • 可以通过iflink 找到对应关系。 在宿主机上执行命令ip link $ ip link ...... 13: veth56ecf40@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue mast er docker0 state UP mode DEFAULT ...

    1. 方法

    可以通过iflink 找到对应关系。

    在宿主机上执行命令ip link

    $ ip link
    ......
    13: veth56ecf40@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue mast
    er docker0 state UP mode DEFAULT group default
        link/ether 56:17:10:68:88:b1 brd ff:ff:ff:ff:ff:ff link-netnsid 4
    15: veth0f80cbf@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue mast
    er docker0 state UP mode DEFAULT group default
        link/ether fa:e6:8f:3b:01:54 brd ff:ff:ff:ff:ff:ff link-netnsid 5
    

    在容器内查看iflink文件

    root@336043b07211:/# docker exec -it nginx-1 bash
    root@336043b07211:/# cat /sys/class/net/eth0/iflink
    13
    
    root@336043b07211:/# docker exec -it nginx-2 bash
    root@336043b07211:/# cat /sys/class/net/eth0/iflink
    15
    

    这样就可以确定:
    nginx-1这个容器在物理机上对应的veth pair是veth56ecf40@if12;
    nginx-2这个容器在物理机上对应的veth pair是veth0f80cbf@if14。

    2. 其它方法

    通过ethtool来查看
    首先在容器中执行:ethtool -S eth0
    eth0为容器中的网卡的名字

    root@336043b07211:/# ethtool -S eth0
    NIC statistics:
         peer_ifindex: 13
    

    然后在宿主机上执行: ip link show

    $ ip link show
    ...
    13: veth56ecf40@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default
        link/ether 56:17:10:68:88:b1 brd ff:ff:ff:ff:ff:ff link-netnsid 4
    15: veth0f80cbf@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default
        link/ether fa:e6:8f:3b:01:54 brd ff:ff:ff:ff:ff:ff link-netnsid 5
    

    使用工具来查看

    展开全文
  • 环境 [root@m6 appslog]# uname -a Linux m6 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux [root@m6 appslog]# docker --...Docker version 1.13.1, build b2f74b...

    环境

    [root@m6 appslog]# uname -a
    Linux m6 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
    [root@m6 appslog]# docker --version
    Docker version 1.13.1, build b2f74b2/1.13.1

     

    启动容器,并映射要用到的目录

    root@m6 overlay]# docker run -it -v /tmp/appslog:/usr/local/tomcat/logs tomcatapps

     

    添加测试用户,指定UID

    [root@m6 apps2]# useradd -u 10086 uid1

     

    改变文件的所有者

    [root@m6 appslog]# pwd
    /tmp/appslog

    [root@m6 appslog]# chown -R uid1:uid1 files

    [root@m6 appslog]# ls -l
    总用量 20
    drwxr-xr-x 2 uid1  uid1     6 9月   2 16:34 files

     

    进入容器建立相同UID的帐号

    [root@m6 appslog]# docker attach 25bdc1e3378e

    root@25bdc1e3378e:/usr/local/tomcat/logs# useradd -u 10086 uid1

     

    此时与宿主机UID相同的所有者用户有权限读写,其它用户写入拒绝

    root@25bdc1e3378e:/usr/local/tomcat/logs# su uid1
    $ cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    sys:x:3:3:sys:/dev:/usr/sbin/nologin
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/usr/sbin/nologin
    man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
    lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
    mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
    news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
    uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
    proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
    www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
    backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
    list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
    irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
    nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
    _apt:x:100:65534::/nonexistent:/bin/false
    apps:x:1000:1000::/home/apps:
    t1:x:1001:1001::/home/t1:
    apps2:x:1002:1002::/home/apps2:
    uid1:x:10086:10086::/home/uid1:
    $ pwd
    /usr/local/tomcat/logs
    $ cd files

    $ echo "hello" >> hello.txt
    $ exit
    root@25bdc1e3378e:/usr/local/tomcat/logs# su t1
    $ echo "hello" >> hello.txt
    sh: 1: cannot create hello.txt: Permission denied

    退出容器,查看创建文件的用户为uid1,说明映射关系形成

    [root@m6 appslog]# ls -l files/
    总用量 4
    -rw-r--r-- 1 uid1 uid1 6 9月   2 16:41 hello.txt

     

     

    展开全文
  • 环境说明 主机(实体机):windows7 宿主机:由docker-machine创建virtualbox 问题 目前使用方式,在主机中通过访问宿主机地址进行容器服务访问。...需要在主机与宿主机之间建立端口映射关系,实现跳转。

    环境说明

    主机(实体机):windows7
    宿主机:由docker-machine创建的virtualbox

    问题

    目前使用方式,在主机中通过访问宿主机地址进行容器服务的访问。
    宿主机的IP不固定,大部分机器99.100,个别机器99.101。无法编写操作手册。

    目标

    跳过宿主机,在主机中使用主机地址进行容器服务的访问。
    需要在主机与宿主机之间建立端口映射关系,实现跳转。

    方法

    宿主机已运行的情况

    1. 添加映射关系
      vboxmanage controlvm default natpf1 “80_80,tcp,,80,,80”
    2. 删除映射关系
      vboxmanage controlvm default natpf1 delete “80_80”
    3. 格式
      vboxmanage controlvm 宿主机名称 natpf<1-N> “映射别名,tcp,,本机端口,,宿主机端口”
      vboxmanage controlvm 宿主机名称 natpf<1-N> delete 映射别名

    宿主机已停止的情况

    1. 添加映射关系
      vboxmanage modifyvm default natpf1 “80_80,tcp,,80,,80”
    2. 删除映射关系
      vboxmanage modifyvm default natpf1 delete “80_80”
    3. 格式
      vboxmanage modifyvm 宿主机名称 natpf<1-N> “映射别名,tcp,,本机端口,,宿主机端口”
      vboxmanage modifyvm 宿主机名称 natpf<1-N> delete 映射别名
    展开全文
  • 简述Volume 在学习volume之前,我们需要思考一个问题 容器删除之后,其数据也会...实现容器内的数据保存时可以绕过容器内部文件系统的限制从而与宿主机的文件系统建立了关系。二者是同步的。可以使得连个隔离的容器
  • 1、首先了解一下docker的网络机制 docker有4中网络模式: a.host ...docker使用linux中namespace隔离资源,一个docker容器会分配...但是如果容器采用host时,那么这个容器会和宿主机公用一个network namespqce,
  • 1、docker ps 找到对应容器 2、根据container id 找到容器在宿主机上映射后进程信息 ...就会得到类似下面信息,其中PID是容器内进程在宿主机pid,ppid是容器内进程在宿主机上父进程pid UID PID PPID ...
  • 最近解决docker与宿主机同网段通信问题,写此文章记录一下整个过程。 例如 宿主机A 和宿主机B是网络联通关系,在宿主机A上面创建了多个容器组成集群,但是我希望通过宿主机B也可以访问到宿主机A容器,当然,你...
  • docker container内运行的进程,在宿主机上,通过ps也是能够查到的,但是在不熟悉命令的时候,无法快速找到他们的关系。 这里科普一个基础命令 docker top 1. 找到容器的id docker ps 2. 找到容器在宿主机上映射后的...
  • 1 使用scp将宿主机的文件传输到本地.(前提是已经建立好docker与宿主机的文件映射关系,在宿主机中可以找到对应的文件) 使用命令scp来进行文件复制. 先进入要下载文件的目录: 如我的是~/qxq/docker/project/non-...
  • 最近解决docker与宿主机同网段通信问题,写此文章记录一下整个过程。例如宿主机A 和宿主机B是网络联通关系,在宿主机A上面创建了多个容器组成集群,但是我希望通过宿主机B也可以访问到宿主机A容器,当然,你也...
  • Docker 常用命令 当下技术都会形成客户端-服务端的一种形式,需要我们通过客户端的命令来驱使服务端执行相应的操作,...以Docker的Logo理解镜像容器的关系 蓝色的大海 ---宿主机系统 鲸鱼 --- Docker 集装箱 ...
  • 笔者在前文《理解 docker 容器中的 uid 和 gid》介绍了 docker 容器中的用户与宿主机上用户的关系,得出的结论是:docker 默认没有隔离宿主机用户和容器中的用户。如果你已经了解了 Linux 的 user namespace 技术...
  • 下图为容器端口与宿主机端口的映射关系 从宿主机浏览器上访问本地linux虚拟机下的3344端口,可以访问对应的docker下的nginx01容器页面(相当于:刚才从nginx镜像创建的nginx01容器的默认端口80对应到了宿主机的3344...
  • Docker容器宿主机器通过IP内外通讯

    千次阅读 2019-03-23 11:40:08
    例如一个如下场景,在Docker环境下面运行了一个含有PHP...原理:当docker服务启动起来时,宿主机器便作为网关的存在其他Docker容器处在同一个网段内,就像是路由器和各个连接终端之间的关系宿主机就类似于路由...
  • Docker学习笔记

    2019-12-28 11:37:13
    docker比vm快是因为docker是没有硬件资源的,vm是有的,docker是秒级别的,vm是分钟级别的,docker面向软件,vm面向硬件,docker与宿主机共用一个内核的,而vm是在宿主机的内核上再运行虚拟机...
  • Docker基本用法

    2019-03-04 17:33:07
    容器镜像的关系类似于面向对象中对象的关系, 也就是说,容器是镜像的实例,镜像是容器的模板。 镜像获取 docker pull xxx 宿主机没有该镜像时会自动从docker镜像仓库下载 docker load --input xxx.tar 可以从...
  • Docker入门

    2020-12-14 17:50:45
    一、Docker和虚拟机的关系 1.虚拟机 我们用的传统虚拟机如 VMware , VisualBox 之类的需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。每一台...
  • Docker和进程的关系是什么 Docker如何在各容器共享内核的情况下,拥有他自己的PID空间以及如何实现资源隔离 docker 进程 docker使用起来给人的感觉是像虚拟机,但是docker和虚拟机是有本质的区别的 虚拟机在...
  • docker存储卷

    2019-09-08 22:56:00
     Docker的存储卷称之为volume,本质上容器上一个或者多个目录,而这些目录绕过了联合文件系统,与宿主机目录或者其他容器目录进行了绑定关系,这种绑定关系可以看作Linuxmount操作,当容器中程序对这些...
  • Docker之网络篇

    2019-05-15 23:25:09
    Docker中需要在容器间相互访问是非常困难,默认Docker不会开放任何端口,因此需要将容器与宿主机进行端口映射,使容器可外部访问。而容器间互相访问,除了可以基于端口映射进行访问外,还可以通过容器链接(Link...

空空如也

空空如也

1 2 3
收藏数 58
精华内容 23
关键字:

docker与宿主机的关系