请问,怎么让Docker每个容器固定一个ip,并且可以该ip可以正常访问网络?

小儿郎 2016-04-25 01:28:21
加精
请问,怎么让Docker每个容器固定一个ip,并且可以该ip可以正常访问网络?
...全文
12484 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34814264 2016-04-27
  • 打赏
  • 举报
回复
就打开等哈打
jiangtsh 2016-04-26
  • 打赏
  • 举报
回复
docker run创建Docker contains时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host指定。 container模式,使用--net=container:NAME_or_ID指定。 none模式,使用--net=none指定。 bridge模式,使用--net=bridge指定,默认设置。containers启动后会通过DHCP获取一个地址. 网络:em1是内网,em2是外网(设置本次外网ip是1.1.1.3),docker0是docker的桥接网卡 独立ip:设置本次独立ip是1.1.1.4 操作方法: 1、为独立ip与外网卡em2做网卡别名 ifconfig em2:0 1.1.1.4 netmask 255.255.255.0 up 2、启动新容器 docker run --restart always --privileged -d --name='test' docker.com:5000/centos6-http:new /usr/bin/supervisord 3. 获取容器ip docker inspect test|grep -i add 比如本次获取的ip是172.17.0.5 在宿主机的iptables里做dnat映射 默认的input、output、forward我不做设置,仅设置nat *nat :PREROUTING ACCEPT [15:1542] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :DOCKER - [0:0] -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER -A POSTROUTING -j MASQUERADE -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER -A DOCKER -d 1.1.1.4 ! -i docker0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.17.0.5:80 -A DOCKER -d 1.1.1.4 ! -i docker0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.17.0.5:443 COMMIT 其中-A DOCKER是做的dnat设置,-d是指定访问的外网ip地址,就是我刚才1.1.1.4,另外dport是允许访问的端口,--to-destination是容器的ip与内部端口 或者参考 http://www.tuicool.com/articles/v2yQ7bA 设置network=none 来配置。 方法有很多。
alinly 2016-04-25
  • 打赏
  • 举报
回复
应该是bridge,配置

742

社区成员

发帖
与我相关
我的任务
社区描述
该论坛主要探讨Linux系统在IBM Power平台的安装、部署、应用开发等话题,并为网友们提供自由交流的平台。
社区管理员
  • Power Linux社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧