docker添加多网卡的方法

1. 清除物理网卡ip地址(192.168.1.22),使其工作在链路层接收所有数据包

ip addr del 192.168.1.22/24 dev eth0
ip addr add 0.0.0.0 dev eth0 

2. 创建网桥br0并把接口eth0加入br0

ip link add br0 type bridge   # ip link delete br0
ip link set br0 up            # ip link set br0 down
ip link set eth0 master br0   # ip link set eth0 nomaster 

3. 启动容器

docker run -it --name testns centos 

容器启动后已经配置了一块网卡eth0

结下了我们用ip命令向容器添加另一块网卡

4. 为ip netns准备环境(参考 man ip-netns):

nspid=$(docker inspect -f '{{.State.Pid}}' testns)
ln -s /proc/${nspid}/ns/net /var/run/netns/${nspid} 

5. 创建一对网口tt0和tt1

ip link add tt0 type veth peer name tt1 

或者直接ip link add type veth peer创建veth0,veth1

6. 添加一网口至br0

ip link set dev tt1 master br0
ip link set dev tt1 up 

7. 添加另外一网口至容器 testns , 并命名为eth1配置ip

ip link set dev tt0 name eth1 netns ${nspid}
ip netns exec ${nspid} ip link set dev eth1 up
ip netns exec ${nspid} ip addr add 10.65.120.48/16 dev eth1
ip netns exec ${nspid} ip addr add 10.65.120.49/16 label eth1:1 dev eth1 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • docker添加多网卡的方法

    1. 清除物理网卡ip地址(192.168.1.22),使其工作在链路层接收所有数据包 ip addr del 192.168.1.22/24 dev eth0 ip addr add 0.0.0.0 dev eth0 2. 创建网桥br0并把接口eth0加入br0 ip link add br0 type bridge # ip link delete br0 ip link set br0 up # ip link set br0 down ip link set eth0 master b

  • docker 添加端口及获取dockerfile的方法

    从docker image中获取 dockerfile docker history --format {{.CreatedBy}} --no-trunc=true $DockerImage |sed "s//bin/sh\ -c\ #(nop)\ //g"|sed "s//bin/sh\ -c/RUN/g" | tac 注:该docker file 不对目录,端口进行映射 同时不执行docker开机启动的脚本及 server 服务 docker 多端口映射 Doc

  • Docker run 命令的使用方法详解

    注意,本文基于最新的Docker 1.4文档翻译. Docker会在隔离的容器中运行进程.当运行 docker run命令时,Docker会启动一个进程,并为这个进程分配其独占的文件系统.网络资源和以此进程为根进程的进程组.在容器启动时,镜像可能已经定义了要运行的二进制文件.暴露的网络端口等,但是用户可以通过docker run命令重新定义(译者注:docker run可以控制一个容器运行时的行为,它可以覆盖docker build在构建镜像时的一些默认配置),这也是为什么run命令相比于其它命

  • docker部署LNMP架构的方法

    环境要求: IP hostname 192.168.1.1 node1 项目规划: 容器网段:172.16.10.0/24 NGINX:172.16.10.10 MySQL:172.16.10.20 PHP:172.16.10.20 网站根目录:/www nginx配置文件:/conf mysql持久化目录:/var/lib/mysql 提前准备服务配置文件: nginx <strong>docker run -itd --name test nginx #运行test容器 docker cp

  • 在Ubuntu 16.04上用Docker Swarm和DigitalOcean创建一个Docker容器集群的方法

    介绍 Docker Swarm是用于部署Docker主机集群的Docker本地解决方案.您可以使用它来快速部署在本地计算机或受支持的云平台上运行的Docker主机集群. 在Docker 1.12之前,设置和部署Docker主机集群需要使用外部键值存储(如etcd或Consul)来进行服务发现.但是,使用Docker 1.12,不再需要外部发现服务,因为Docker提供了一个内置的键值存储,可以开箱即用. 在本教程中,您将了解如何使用Docker 1.12上的Swarm功能部署一组Docker机器

  • Linux下Docker及portainer相关配置方法

    一.安装使用Docer CE 本文以CentOS 7为例,安装docker CE版本,docker有两种版本,社区版本CE和企业版本EE,此处学习研究以CE版本为例, 两种安装方式可选:1.使用yum安装,2.使用脚本自动安装 系统要求 Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10. CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定. 卸载旧版本 旧版本的 Do

  • Docker 部署 Mysql8.0的方法示例

    1. 参照官网,安装docker 2.拉取mysql镜像 (默认拉取最新的镜像)8.0.11 docker pull mysql 3.在宿主机创建持久化 mysql data 及mysql.cnf mkdir /usr/local/mysqlData/test/cnf mkdir /usr/local/mysqlData/test/data vi /usr/loal/mysqlData/test/cnf/mysql.cnf 设置本地文件共享: Docker -> Preferences... -

  • 修改已有docker容器中的内容方法

    一.docker ps    列出容器 二.docker cp   拷贝文件至容器 注:docker中宿主机与容器(container)互相拷贝传递文件的方法 1.从容器拷贝文件到宿主机 docker cp mycontainer:/opt/testnew/file.txt /opt/test/ 2.从宿主机拷贝文件到容器 docker cp /opt/test/file.txt mycontainer:/opt/testnew/ 需要注意的是,不管容器有没有启动,拷贝命令都会生效. 当结束后,

  • 使用docker搭建redis主从的方法步骤

    一.构建 Docker 环境 1.创建 dockerfile FROM centos:latest RUN groupadd -r redis && useradd -r -g redis redis RUN yum -y update && yum -y install epel-release && yum -y install redis && yum -y install net-tools EXPOSE 6379 2.构建镜像 do

  • Docker 查看镜像信息的方法

    本文中,我们将需要学习 Docker 如何查看镜像信息 一.images 命令列出镜像 通过使用如下两个命令,列出本机已有的镜像: docker images 或: docker image ls 如下图所示: 对上述红色标注的字段做一下解释: REPOSITORY: 来自于哪个仓库: TAG: 镜像的标签信息,比如 5.7.latest 表示不同的版本信息: IMAGE ID: 镜像的 ID, 如果您看到两个 ID 完全相同,那么实际上,它们指向的是同一个镜像,只是标签名称不同罢了: CREA

随机推荐