docker配置独立桥接IP的方法

使用端口映射(NAT)的方式存在一个弊端,当多个容器都需要使用某个端口时或者host主机端口与容器端口冲突时(例如,host主机搭建了80的服务,两个容器也都搭建了80的服务,那个只有1个服务可以使用本机的80端口,其他服务都要映射为其他端口)

为容器配置独立的桥接IP就完美的解决了这个问题。以下为配置步骤:

1、可以查看默认的docker0网卡的IP:

可以看到,是一个虚拟的IP地址172.17.42.1。

接下来开始配置,首先停止docker服务:

/etc/init.d/docker stop

接着停止docker0网卡:

ifconfig docker0 down

删除默认的桥接网络docker0:

brctl delbr docker0

创建桥接网卡,修改默认的eth0的配置文件:

cd /etc/sysconfig/network-scripts/修改默认ifcfg-eth0配置文件:

创建一个新的文件ifcfg-br0并编辑:

DEVICE=br0
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
TYPE=Bridge
IPADDR=10.0.0.36
NETMASK=255.255.255.224
GATEWAY=10.0.0.33

上面高亮的3行要根据本机的虚拟网卡信息填写,我本机的信息:

完成后,保存退出,并重启网络服务(service network restart)。

可以看到桥接网络已经启动了:

修改docker的配置文件/etc/sysconfig/docker,添加桥接网卡参数:

修改完成后重启docker服务:

service restart docker

接着我们启动一个容器:

docker run --name centostest centos:latest /bin/bash

容器启动后可以看到对应的网卡:

至此,就已经配置好桥接网络了

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

(0)

相关推荐

  • 关于docker的15个小tip(技巧)

    1. 获取最近运行容器的id 这是我们经常会用到的一个操作,按照官方示例,你可以这样做(环境ubuntu): $ ID=$(docker run ubuntu echo hello world) hello world $ docker commit $ID helloworld fd08a884dc79 这种方式在编写脚本的时候很有用,比如你想在脚本中批量获取id,然后进一步操作.但是这种方式要求你必须给ID赋值,如果是直接敲命令,这样做就不太方便了. 这时,你可以换一种方式: $ alias

  • pipework docker无法使用ip netns命令解决办法

    在通过pipework 给docker容器分配IP的时候, 系统报出以下错误: Object "netns" is unknown, try "ip help". 该错误是由于系统版本暂时不支持namespaces, 可通过更新内核或者iproute的方法获取对namespaces的支持.更新方法如下: 方法一: 添加yum源: [cce] cat /etc/yum.repos.d/rdo.repo [openstack-kilo] name=OpenStack K

  • Docker为网络bridge模式指定容器ip的方法

    前言 众所周知bridge模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace.设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上.下面来看看Docker为网络bridge模式指定容器ip的方法. 实现方法 如果只是简单创建一个bridge模式的网络是无法给容器指定ip的 [root@vultrvpn conf.d]# docker network create --driver bridge wordpress_net ad1ff3d972

  • 在Docker容器中使用iptables时的最小权限的开启方法

    在Docker容器中使用iptables时的最小权限的开启方法 Dcoker容器在使用的过程中,有的时候是需要使用在容器中使用iptables进行启动的,默认的docker run时都是以普通方式启动的,没有使用iptables的权限,那么怎样才能在容器中使用iptables呢?要如何开启权限呢? 那么在docker进行run的时候如何将此容器的权限进行配置呢?主要是使用--privileged或--cap-add.--cap-drop来对容器本身的能力的开放或限制.以下将举例来进行说明: 例如

  • Docker 容器指定自定义网段的固定IP/静态IP地址

    Docker容器指定自定义网段的固定IP/静态IP地址 第一步:创建自定义网络 备注:这里选取了172.172.0.0网段,也可以指定其他任意空闲的网段 docker network create --subnet=172.172.0.0/16 docker-ice 注:docker-ice为自定义网桥的名字,可自己任意取名. 第二步:在你自定义的网段选取任意IP地址作为你要启动的container的静态IP地址 备注:这里在第二步中创建的网段中选取了172.172.0.10作为静态IP地址.这

  • 详解在Python和IPython中使用Docker

    现在Docker是地球上最炙手可热的项目之一,就意味着人民实际上不仅仅是因为这个才喜欢它. 话虽如此,我非常喜欢使用容器,服务发现以及所有被创造出的新趣的点子和领域来切换工作作为范例. 这个文章中我会简要介绍使用python中的docker-py模块来操作Docker 容器,这里会使用我喜爱的编程工具IPython. 安装docker-py 首先需要docker-py.注意这里的案例中我将会使用Ubuntu Trusty 14.04版本. 复制代码 代码如下: $ pip install doc

  • 使用IPython来操作Docker容器的入门指引

    现在Docker是地球上最炙手可热的项目之一,就意味着人民实际上不仅仅是因为这个才喜欢它. 话虽如此,我非常喜欢使用容器,服务发现以及所有被创造出的新趣的点子和领域来切换工作作为范例. 这个文章中我会简要介绍使用python中的docker-py模块来操作Docker 容器,这里会使用我喜爱的编程工具IPython. 安装docker-py 首先需要docker-py.注意这里的案例中我将会使用Ubuntu Trusty 14.04版本. $ pip install docker-py IPyh

  • 详解docker容器分配静态IP

    最近因为工作要求需要用学习使用docker,最后卡在了网络配置这一块.默认情况下启动容器的时候,docker容器使用的是bridge策略比如: docker run -ti ubuntu:latest /bin/bash 等效于 docker run -ti --net=bridge ubuntu:latest /bin/bash bridge策略下,docker容器自动为我们分配了一个IP地址,并连接到docker0的网桥上.但这里有一个问题,这个IP地址并不是静态分配的,这对我们的对容器的实

  • Docker 配置固定IP及桥接的实现方法

    docker默认使用bridge模式,通过网桥连接到宿主机,而容器内部的ip则从网桥所在的ip段取未用的ip.这样做一个不方便的地方在于容器内部的ip不是固定的,想要连接容器时只能通过映射到宿主机的端口,因而有很多项目使用overlay来为docker提供网络的配置,比如Pipework.Flannel.Kubernetes.Weave.opencontrail等. 想要使用overlay来为docker配置网络,需要首先了解下docker的网络模式: 一.Docker的四种网络模式 Docke

  • docker配置独立桥接IP的方法

    使用端口映射(NAT)的方式存在一个弊端,当多个容器都需要使用某个端口时或者host主机端口与容器端口冲突时(例如,host主机搭建了80的服务,两个容器也都搭建了80的服务,那个只有1个服务可以使用本机的80端口,其他服务都要映射为其他端口) 为容器配置独立的桥接IP就完美的解决了这个问题.以下为配置步骤: 1.可以查看默认的docker0网卡的IP: 可以看到,是一个虚拟的IP地址172.17.42.1. 接下来开始配置,首先停止docker服务: /etc/init.d/docker st

  • Docker 配置容器固定IP的方法

    目录 前言 环境介绍 绑定步骤 跨主机容器互访 前言 之前使用pipework 分配静态ip是暂时的,重启之后就会失效,并且使用pipework绑定的ip 物理机,虚拟机,docker容器的ip都在同一网段,这在生产环境是很困难的,下面使用docker自带的network实现固定ip分配,并且重启不会消失. 环境介绍 绑定步骤 先操作192.168.1.105虚拟机 第一步:创建自定义网络 docker network create --subnet=172.172.0.0/24 docker-

  • 使用Docker配置redis sentinel哨兵的方法步骤

    目录 1.配置主从 2. 配置哨兵 3.SpringBoot连接 本文演示一主二从. 先说一下遇到的问题.我看网上说想配置哨兵,必须让启动redis的docker网络模式为host,否则无法访问到从还是什么的.我指定--network host后无法外网访问,redis desktop manager连不上redis了,后来发现我这个新克隆的机器没关防火墙,关上就好了. 1.配置主从 docker pull一下redis master mkdir -p /mydata/redis/6379/co

  • Docker配置redis哨兵模式的方法(多服务器上)

    前言 之前学习的redis一直是在单一服务器上运行的,而且是直接部署在服务器上.听说用docker会让配置过程更轻松 (并没有)这次就在用Docker的基础上配置Redis一主一从三哨兵.本篇为配置数据节点,即一主一从两个节点. 条件 三台服务器(因为需要至少三个哨兵保证安全性)[可以在阿里云上租几个小时] 服务器1:8.131.78.18 服务器2:8.131.69.106 服务器3:8.131.71.196 端口号7000.17000已在安全组上放行(阿里云) 环境:centos8.0 安装

  • Docker配置HTTP/HTTPS代理的方法

    起因 我在使用Docker的pull命令拉取ELK官方提供的镜像时,会出现无法连接的情况,并且会出现TLS handshake timeout的错误.在搜索相关文章之后得出结论:国内的网络环境不好,导致连接docker.elastic.co失败或无法连接.于是我第一时间想到了代理的方式,好在Docker支持设置代理来访问其他Registry,下面记录整个配置过程. 准备工作 首先,你的机器上需要安装好Docker,当我写这篇文章时,Docker的版本为18.03,对于后续版本,本文章的配置方法可

  • Docker 配置网络使用bridge网络的方法

    就网络而言,桥接网络(bridge network,也叫网桥)是一种链路层设备,用于转发网段之间的流量. bridge 可以是硬件设备或在主机内核中运行的软件设备. 对 Docker 而言,桥接网络使用允许容器连接到同一个桥接网络来通信的软件网桥,同时提供与未连接到该桥接网络的容器的隔离.Docker bridge 驱动程序自动在主机中安装规则使不同桥接网络上的容器不能直接相互通信. 桥接网络用于在同一个 Docker 守护进程上运行的容器通信.对于不同 Docker 守护进程的容器,可以在操作

  • 在CentOS 7 上为docker配置端口转发以兼容firewall的解决方法

    在CentOS 7上当我们以类似下列命令将主机端口与容器端口映射时可能遇到无法访问容器服务的问题 docker run --name web_a -p 192.168.1.250:803:80 -d web_a:beta1.0.0 . 由于docker在执行此命令时,是向iptables注入了一条规则将主机803映射到容器80端口,但是CentOS 7中以firewalld服务替代了iptables.因此,上述命令的端口映射不会生效. 解决方法:首先观察一下主机上的网卡信息,确认增加了一个doc

  • docker 安装solr8.6.2 配置中文分词器的方法

    一.环境版本 Docker version 19.03.12 centos7 solr8.6.2 二.docker安装 1.使用官方安装脚本自动安装 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 2.使用国内 daocloud 一键安装命令: curl -sSL https://get.daocloud.io/docker | sh 三.docker安装solr8.6.2 1.docker拉取solr doc

随机推荐

其他