微服务 server 推荐使用 Docker.
使用 Docker 可以让开发者封装他们的应用以及依赖包到一个可移植的容器中。然后发布到任意的 Linux 机器上. Docker 容器完全使用沙箱机制,彼此之间不会有任何接口。
Docker 和虚拟机的区别
虚拟机:应用程序是运行在操作系统上的,应用程序文件和操作系统文件相互交叉,导致虚拟机对操作系统有很高的依赖。一旦系统出现问题,虚拟机依赖的文件以及安全补丁都可能出现文件丢失。
Docker 中的容器是基于进程隔离的,多个容器可以共享单个内核,并且创建Docker容器的镜像所需要的配置不依赖宿主主机系统。
所以 Docker 的可移植性要比虚拟机好, 对宿主系统的依赖也没有虚拟机(是虚拟机本身对操作系统的依赖, 这里说的不是application)那么高.
Docker 中的网络
默认 bridge(单主机互联) 和 overlay(可跨主机互联)
bridge: 与宿主主机通信. bridge 的概念
从图上可以看出,
container1 和 container2 可以通信.
container2 和 container3 可以通信.
container1 和 container3 不可以通信.