Docker网络及Docker Compose并编排微服务

Docker基础请参考上篇博文:总结 Docker学习(使用centos7-1804)

1. Docker 网络

Docker允许通过外部访问容器或容器互联的方式来提供网络服务。安装Docker时,会自动安装一块Docker网卡称为docker0,用于Docker各容器及宿主机的网络通信,网段为
172.0.0.1。

1. 1. Docker网络基本概念

Docker网络中有三个核心概念:沙盒(Sandbox)、网络(Network)、端点(Endpoint)。

  • 沙盒,提供了容器的虚拟网络栈,也即端口套接字、IP路由表、防火墙等内容。隔离容器网络与宿主机网络,形成了完全独立的容器网络环境。
  • 网络,可以理解为Docker内部的虚拟子网,网络内的参与者相互可见并能够进行通讯。Docker的虚拟网络和宿主机网络是存在隔离关系的,其目的主要是形成容器间的安全通讯环境。
  • 端点,位于容器或网络隔离墙之上的洞,主要目的是形成一个可以控制的突破封闭的网络环境的出入口。当容器的端点与网络的端点形成配对后,就如同在这两者之间搭建了桥梁,便能够进行数据传输了。
1. 2. Docker的四种网络模式

Docker服务在启动的时候会创建三种网络,bridge、host和none,还有一种共享容器的模式container。

  • Bridge 桥接模式,主要用来对外通信的,docker容器默认的网络使用的就是bridge。使用bridge模式配置容器自定的网络配置
# 配置容器的主机名 
docker run --name t1 --network bridge -h [自定义主机名] -it --rm busybox 
# 自定义DNS 
docker run --name t1 --network bridge --dns 8.8.8.8 -it --rm busybox 
# 给host文件添加一条 
docker run --name t1 --network bridge --add-host [hostname]:[ip] -it --rm busybox
  • Host host类型的网络就是主机网络的意思,绑定到这种网络上面的容器,内部使用的端口直接绑定在主机上对应的端口,而如果容器服务没有使用端口,则无影响。
  • None 从某种意义上来说,none应该算不上网络了,因为它不使用任何网络,会形成一个封闭网络的容器。
  • Container 共享另外一个容器的network namespace,和host模式差不多,只是这里不是使用宿主机网络,而是使用的容器网络。
1. 3. 开放端口

Docker0为NAT桥,所以容器一般获得的是私有网络地址.给docker run命令使用-p选项即可实现端口映射,无需手动添加规则,-p 选项的使用 :

-p <containerPort>
将指定的容器端口映射到主机所有地址的一个动态端口
-p <hostPort>:<containerPort>
将容器端口 <containerPort> 映射到指定的主机端口 <hostPort> -p <ip>::<containerPort>
将指定的容器端口 <containerPort> 映射到主机指定 <ip> 的动态端口
-p <ip>:<hostPort>:<containerPort>
将指定的容器端口 <containerPort> 映射至主机指定 <ip> 的端口 <hostPort>
动态端口指随机端口,可以使用docker port命令查看具体映射结果
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值