Docker 自己的理解(9)
1. Docker基础
docker 安装
单个的服务运行:例如:nginx、redis、mysql
是通过拉取镜像 images ,通过 run 命令运行容器
2. Dockerfile
通过 Dockerfile 文件来 build 镜像,生成镜像后同样使用 run 命令运行,这个也属于基础
同时可以将生成的镜像上传到 Docker Hub 仓库,使用的时候直接拉取
或者将直接从服务器拉取 源代码 或者 发布后的dll 通过 build 重新构建镜像
手动操作,单个容器 那100个微服务怎么处理,同时存在依赖关系呢 ?
3. Docker-Compose
批量容器编排 可以理解为:单机多容器部署方案
我们正常的项目中,一个项目是由多个服务组成的,例如:MySQL、Redis、RabbitMQ
通过 Dockerfile 和 Docker-compose.yml 的组合,重点在 yml 文件中,定义了多个容器服务,Dockerfile 的 build 命令也定义在了其中。
通过 docker-compose up 命令启动多个服务。会创建一个新的网络 基于 bridge 模式。
在同一个网络下,可直接 ping 通服务名。所以在项目中,其他服务的连接字符串也可以直接写服务名。例如图:
4. Docker Swarm
集群环境,基于 Raft 协议:保证大多数节点存活才可以用。只要 > 1 ,集群至少大于3台。
环境搭建完成会创建一个默认的网络,基于 overlay network,也可自定义网络。
Swarm 主要是对服务的操作,
例如:docker service create 创建服务 与 docker run 命令作用一致,不同的是 docker service 可以对服务进行扩缩容。以及 滚动更新/回滚操作。
2019-07 阿里云宣布 Docker Swarm 剔除。