docker网络

docker的网络有四种连接方式

  • 1、bridge:将网络驾到默认的docker:0桥上,桥再二层转发给宿主机的物理网卡,通过SNAT与DNAT和外部通信
  • 2、host :将网络直接驾到宿主机网卡上,直接与外部通信,有风险不推荐使用
    开放式容器
  • 3、none :驾到none上,封闭式容器,不与外部通信
  • 4、联盟式容器:是指使用某个已存在容器的网络接口的容器,接口
    被联盟内的各容器共享使用;因此,联盟式容器彼此间完全无
    隔离,两个在同一联盟内的容器通过loopback通信
    可以使用docker network list查看容器网络
    注入,在启动之前就设定好某些属性,例如:
    docker run --name bbox1 --rm --net bridge -it --hostname bbox1.lvqing.com --dns 223.5.5.5 --add-host node1.lvqing.com:192.168.31.200 busybox
    在启动容器时指定暴露哪些端口,能自动生成iptables的规则

-p选项的使用格式

-p <containerPort>
	将指定的容器端口映射至主机所有地址的一个动态端口
-p <hostPort>:<containerPort>
	将容器端口<containerPort>映射至指定的主机端口<hostPort>
-p <ip>::<containerPort>
	将指定的容器端口<containerPort>映射至主机指定<ip>的动态端口
-p <ip>:<hostPort>:<containerPort>
	将指定的容器端口<containerPort>映射至主机指定<ip>的端口<hostPort>
“动态端口”指随机端口,具体的映射结果可使用docker port命令
查看

实验:busybox暴露80端口启动httpd服务

1、创建容器
 docker run --name bbox2 --rm --net bridge -it  -p 80 busybox
2、 在busybox种启动httpd服务
 httpd -h /data/html
3、 查看在宿主机上映射的端口号
 docker port bbox2
4、 访问测试
 curl http://192.168.31.200:32768
<h1>bbox1 server</h1>

还可以自己创建虚拟网桥

docker network create -d bridge --subnet=172.31.0.0/16 --ip-range=172.31.0.0/16 --gateway=172.31.0.1 mybr0

docker run --name bbox1 --rm -it --net mybr0 busybox

还可以给容器添加或者删除网卡

docker network connect|disconnect bridge bbox1 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值