
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地址。这里以启动docker-ice为例。
docker run -d --net docker-ice --ip 172.172.0.10 ubuntu:16.04
其他
备注1:这里是固定IP地址的一个应用场景的延续,仅作记录用,可忽略不看。
备注2:如果需要将指定IP地址的容器出去的请求的源地址改为宿主机上的其他可路由IP地址,可用iptables来实现。比如将静态
IP地址 172.18.0.10出去的请求的源地址改成公网IP104.232.36.109(前提是本机存在这个IP地址),可执行如下命令:
iptables -t nat -I POSTROUTING -o eth0 -d 0.0.0.0/0 -s 172.18.0.10 -j SNAT --to-source 104.232.36.109
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Docker不能绑定静态的外网固定ip的问题及解决办法
前段时间,我一直在研究如何给Docker分配静态ip,主要的用途是让thrift进来和出来都走一个ip,还有就是爬虫可以独立ip地址,这样就很好的实现了爬虫的多ip方式- 但是随着nginx tcp的加入和开发了一个基于Python socket的ip轮询访问模块解决了这两个问题- 当然也不能因为这两问题,就丢弃这问题了-. 在Docker run的时候,咱们可以添加-p参数来控制他的source来源ip. 下面的命令,对外来说,开放了192.168.1.200:9200的端口- 但是
-
Docker如何固定IP设置的方法
由于工作需要,需要给Docker设置固定IP,在网上的查找了一些资料,自己试着实践一下,留个笔记. 经常用Docker模拟项目在生产环境中的部署,往往需要同时开好几台Docker容器,而且有时安装的软件需要绑定Docker局域网中的其他容器,如 MongoDB 副本集部署的时候,就需要绑定其他容器的内网IP. 但是,Docker 每次重启后,容器的IP地址会变化,查询了资料,Docker是支持设置固定IP的. Docker 默认网络 Docker安装后,默认会创建下面三种网络类型: $ dock
-
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
-
Docker 配置固定IP及桥接的实现方法
docker默认使用bridge模式,通过网桥连接到宿主机,而容器内部的ip则从网桥所在的ip段取未用的ip.这样做一个不方便的地方在于容器内部的ip不是固定的,想要连接容器时只能通过映射到宿主机的端口,因而有很多项目使用overlay来为docker提供网络的配置,比如Pipework.Flannel.Kubernetes.Weave.opencontrail等. 想要使用overlay来为docker配置网络,需要首先了解下docker的网络模式: 一.Docker的四种网络模式 Docke
-
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地址.这
-
Docker容器通过独立IP暴露给局域网的方法
Docker容器非常轻量,系统开销非常少,比VMware或者VirtualBox用起来方便,部署起来也非常容易.官方推荐我们通过端口映射的方式把Docker容器的服务提供给宿主机或者局域网其他容器使用.一般过程是: 1.Docker进程通过监听宿主机的某个端口,将该端口的数据包发送给Docker容器 2.宿主机可以打开防火墙让局域网其他设备通过访问宿主机的端口进而访问docker的端口 这里以CDNS为例,CDNS是一个用于避免DNS污染的程序,通过CDNS可以把你的计算机变成一个抗污染的DNS
-
docker容器通过ping直接运行获取公网IP操作
通过容器获取本机的公网ip 可以用本地IP 多服务注册中心 把命令改居ping 执行可以拿到不同的服务器信息 public static String getIfconfigIP() { BufferedReader in = null; String outline = ""; // timeOut window为ms linux 为s Runtime r = Runtime.getRuntime(); // 将要执行的ping命令,此命令是windows格式的命令 String p
-
Docker容器间通讯直接路由方式实现网络通讯
概述 就目前Docker自身默认的网络来说,单台主机上的不同Docker容器可以借助docker0网桥直接通信,这没毛病,而不同主机上的Docker容器之间只能通过在主机上用映射端口的方法来进行通信,有时这种方式会很不方便,甚至达不到我们的要求,因此位于不同物理机上的Docker容器之间直接使用本身的IP地址进行通信很有必要.再者说,如果将Docker容器起在不同的物理主机上,我们不可避免的会遭遇到Docker容器的跨主机通信问题.本文就来尝试一下. 此时两台主机上的Docker容器如何直接通过
-
Docker容器跨主机通信中直接路由方式详解
概述 就目前Docker自身默认的网络来说,单台主机上的不同Docker容器可以借助docker0网桥直接通信,这没毛病,而不同主机上的Docker容器之间只能通过在主机上用映射端口的方法来进行通信,有时这种方式会很不方便,甚至达不到我们的要求,因此位于不同物理机上的Docker容器之间直接使用本身的IP地址进行通信很有必要.再者说,如果将Docker容器起在不同的物理主机上,我们不可避免的会遭遇到Docker容器的跨主机通信问题.本文就来尝试一下. 方案原理分析 由于使用容器的IP进行路由,就
-
Docker容器互相连接三种实现方法详解
docker容器间的互连通信有三种方法: docker内部网络:不够灵活强大,不推荐 docker networking:1.9或更新版本,推荐使用 docker链接:1.9之前版本适用. 1.docker内部网络 涉及docker自己的网络栈. 安装docker后,系统会创建一个新的网络接口,名字是docker0,用于连接容器和宿主机,IP范围是172.16-172.30, 每个docker容器都会在这个接口上分配一个IP地址. docker每创建一个容器就会创建一组互联的网络接口,一端是容器
-
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容器之内网独立IP访问的方法
实验介绍 今天在学习Docker容器的时候,在虚拟机中创建并开启了一个nginx的container,然后通过端口映射的方法,即将container的80端口映射到虚拟机的80端口,然后在宿主机上通过访问虚拟机的IP从而访问到Docker容器的Nginx服务. 然后开始思考,能否通过分配给container一个独立的IP,然后在宿主机上访问这个独立IP从而访问Nginx服务.通过各种探索,百度,最终实现,下面开始实验,这里用的是虚拟机的NAT模式. 实验图解 实验实施 安装docker服务 [r
-
VMware中安装CentOS7(设置静态IP地址)并通过docker容器安装mySql数据库(超详细教程)
一位读大二的学弟问我怎么安装配置这些,我简单的整了一个教程,这里记录一下,并分享给需要的朋 安装过程学习使用足够,实际工作中有些繁琐的配置略过了! 打开VM虚拟机,菜单栏[文件]-->选择[新建虚拟机],选择"o自定义(高级)"-->[下一步] 默认一直点[下一步]到选择安装盘的位置,选择自己已经下载好的官方DVD镜像文件(不要整别的镜像,避免走不必要 的坑) [下一步]设置虚拟机名称(取一个合适的名称,设置合适的路径) 处理器设置默认,安装好虚拟centos后可以根据情况
随机推荐
- PHP socket 模拟POST 请求实例代码
- 错误类型:Provider (0x80004005)未指定的错误 的一个处理方法
- Linux中的特殊符号与正则表达式
- json对象转为字符串,当做参数传递时加密解密的实现方法
- Asp.Net(C#)自动执行计划任务的程序实例分析分享
- javascript返回顶部的按钮实现方法
- js时间日期和毫秒的相互转换
- PHP的Symfony和CodeIgniter框架的Nginx重写规则配置
- 在Windows8上的搭建Python和Django环境
- Windows下使Python2.x版本的解释器与3.x共存的方法
- c#字符串查找某词出现的次数及索引
- Android 开发中使用Linux Shell实例详解
- php用正则判断是否为数字的方法
- Ajax 和 Asp 的编程
- SpringMVC实现文件上传和下载功能
- vbs SendKey 用法 Sendkey 键盘对应的码表
- JS简单生成两个数字之间随机数的方法
- SQL Server Alwayson添加监听器失败的解决方法
- MS sqlserver 2008数据库转换成2000版本的方法
- Bootstrap Multiselect 常用组件实现代码
其他
- springboot2.0 获取相对路径
- Sprinng boot 读取resouces下面的文件
- windows 2012 限制远程登录ip 防火墙设置没有用
- elementui 树表格和表格切换
- 开源全球化项目 net core
- python 列表取余
- layui table 获取删除id
- pandas创建空dataframe
- 微信小程序点击变图片
- 怎么排除jar包里的相同的类
- node 命令行参数为json字符串
- java实现HTTP请求的四种方式
- mybatis-plus 添加一条记录
- fegin 对象不实例化会默认序列化么
- element中某列触发点击事件
- 如何重写TokenEndpoint
- 联想T60怎么换内存条
- 微信小程序 pre 标签
- spamassassin怎么用
- bootstrap密码输入框