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-br0

备注:这里选取了172.172.0.0网段,也可以指定其他任意空闲的网段,docker-br0为自定义网桥的名字,可自己任意取名。
注意:这里子网掩码要使用255.255.255.0也就是IP后面的那个24,因为后面要使用iptables配置路由表,我之前使用255.255.0.0 无法配置.所以这里配置成24.

创建网桥之后,使用ifconfig查看 会多出一个网桥,该网桥在docker启动或者重启之后,会自动显示出来。

永久的,可以使用docker network rm docker-br0 移除网桥。

第二步:在你自定义的网段选取任意IP地址作为你要启动容器IP

docker run -i -d --net docker-br0 --ip 172.172.0.10 --name nginx -v /usr/local/software/:/mnt/software/ 3bee3060bfc8 /bin/bash

备注:创建容器时,在第一步创建的网段中选取了172.172.0.10作为静态IP地址。并且以docker-br0网桥启动. -v是挂载,表示需要将本地哪个目录挂载到容器中。3bee3060bfc8是镜像ID

使用docker exec -it nginx /bin/bash 进入已启动的容器,使用 yum install net-tools 下载 iptables 然后使用ifconfig查看容器ip

第三步:测试本机和容器是否ping通

跨主机容器互访

第四步:在192.168.1.106虚拟机上,给容器绑定固定ip, 按照之前 第一步到 第三步.

第五步:在两个容器中互相访问,发现跨主机容器互访,并不能ping通。

第六步:配置路由表

#添加路由规则
ip route add 对方容器所在的ip网段/子网掩码 via 对方虚拟机ip dev 通过哪个网卡通信
如: ip route add 172.172.1.0/24 via 192.168.1.106 dev eno16777736
添加完成之后,可以使用 route命令 查看添加之后的规则,也可以使用 ip route del 172.172.1.0/24 移除路由规则

在192.168.1.105 和 192.168.1.106虚拟机上,分别添加对应的路由规则!
192.168.1.105: ip route add 172.172.1.0/24 via 192.168.1.106 dev eno16777736
192.168.1.106: ip route add 172.172.0.0/24 via 192.168.1.105 dev eno16777736

第七步:在两个容器中互相访问,发现可以实现跨主机容器互相ping通了。

到此这篇关于Docker 配置容器固定IP的文章就介绍到这了,更多相关docker容器固定IP内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • docker容器启动设置固定IP的实现

    docker安装以后的网络类型 [root@insure updev]# docker network ls NETWORK ID NAME DRIVER SCOPE 14da40175b01 bridge bridge local 65fb78c28e4f host host local e0d0c90c1462 none null local 说明:桥接网络默认情况下启动的Docker容器,都是使用 bridge,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对

  • docker compose自定义网络实现固定容器ip地址

    由于默认的bridge桥接网络,重启容器后会改变ip地址.在一些场景下我们希望固定容器IP地址. docker-compose是docker的一个编排工具,相对于命令模式创建网络,容器等.使用配置文件相对来说更方便,可追溯问题. 直接粘贴docker-compose.yml文件 version: '2' services: nginx: image: nginx:1.13.12 container_name: nginx restart: always tty: true networks: e

  • Docker绑定固定IP/跨主机容器互访操作

    前言 之前使用pipework 分配静态ip是暂时的,重启之后就会失效,并且使用pipework绑定的ip 物理机,虚拟机,docker容器的ip都在同一网段,这在生产环境是很困难的,下面使用docker自带的network实现固定ip分配,并且重启不会消失. 环境介绍 服务器IP 容器分配网段 启动容器的ID 192.168.1.105 172.172.0.0/24 172.172.0.10 192.168.1.106 172.172.1.0/24 172.172.1.10 绑定步骤 先操作1

  • 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配置独立桥接IP的方法

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

  • linux中设置固定ip的方法(亲测有效)

    首先打开虚拟机 打开xshell5连接虚拟机(比较方便,这里默认设置过Linux的ip,只是不固定) 输入ifconfig,可以查看网管相关配置信息: 然后输入    vi /etc/sysconfig/network-scripts/ifcfg-ens33命令.修改网卡配置文件 按 i 键进行编辑.修改入下,原有的配置不要删,只要按下面修改就好.没有的配置项新增上去就好 打开以后可以看到默认的配置就是dhcp,然后onboot=no,表示不会随着系统的启动而启动.我们需要修改这个配置 然后在下

  • 详解Docker修改容器端口映射的方法

    直接解决方法 具体可参考Stack Overflow链接 docker运行时存在守护程序,所以我们需要停止docker内运行的容器和docker服务.具体可参考官网给出的守护程序解释 docker stop 容器id //CentOS下停止docker服务(Ubuntu类似) sudo systemctl stop docker 使用以下命令找到已创建容器的hostconfig.json和config.v2.json配置文件. find / -name hostconfig.json //或co

  • 使用Docker将容器打成镜像的方法步骤

    目录 前言 1. 容器打成镜像 过程示例 2. 镜像打包 前言 工作中遇到三方闭源的中间件运行起来某项特性不符合需求,但是镜像提供方偏偏又没有将配置文件挂载出来以供修改,这就导致要使软件符合需求地运行只能进入到容器内部修改配置文件后重启,可谓非常之蛋疼.笔者平时对 Docker 接触不多,好在有同事提到 Docker 支持将运行中的容器重新打包为镜像,于是网上搜索资料,大致整理出以下步骤解决上面的问题,故有本文聊作记录 进入运行中的容器修改其配置文件,修改完成后重启容器 将已经修改过配置文件的容

  • Hyper-V设置虚拟机固定Ip的方法步骤

    win10下使用hyper-v在本机安装linux虚拟机后,网络访问上有如下两点需求: (1)无论物理机的网络环境怎么变化,都需要保持虚拟机的IP地址不变,保证我本机使用xshell等终端访问始终用同一个IP地址,或者在安装了其他软件后,访问虚拟机的IP地址保持不变. (2)物理机可访问虚拟机,虚拟机是否可访问网络都行.重点保证本机可访问虚拟机,以及虚拟机之间能互相访问. 1.为了实现第一点,需给虚拟机设置一个固定的网段以及静态IP,这里使用192.168.137.X的网段,如下以centos7

  • 使用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容器固定IP分配详解

    我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host指定. container模式,使用--net=container:NAME_or_ID指定. none模式,使用--net=none指定. bridge模式,使用--net=bridge指定,默认设置. 默认选择bridge的情况下,容器启动后会通过DHCP获取一个地址,这可能不是我们想要的,本文介绍在centos7 docker

  • 基于Ubuntu 18.04配置固定IP的方法教程

    前言 Ubuntu 18.04不再使用ifupdown配置网络,而改用netplan.在/etc/network/interfaces配置固定IP是无效的,重启网络的命令services network restrart或/etc/init.d/networking restart也是无效的. 本文主要给大家介绍了关于Ubuntu 18.04配置固定IP的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 1. 使用ifupdown配置网络 如果要使用之前的方式配置网络,需

  • 基于Ubuntu 16.04设置固定IP的方法教程

    前言 本文主要给大家介绍了关于Ubuntu 16.04设置固定IP的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 方法如下: 首先说明一下这个是在 mac 下的 vm 虚拟机上完成的 1.vm 上增加虚拟网卡 打开 vm 的偏好设置 在本地终端上输入 ifconfig 可以看到这个是刚加入的虚拟网卡 2.设置虚拟机网络适配器 此时启动虚拟机是随机在192.168.219.3到192.168.219.254之间随机分配的,但是我们需要固定分配则需要在系统本身进行配置.

随机推荐