赞
踩
一个docker-compose.yml文件是一个YAML文件,它定义了如何Docker容器在生产中应表现。
将此文件保存为docker-compose.yml您想要的任何位置。确保将要运行的镜像已经推送送到注册表,并通过替换镜像详细信息进行更新。
version: "3"
services:
web:
# replace username/repo:tag with your name and image details
image: username/repo:tag
deploy:
replicas: 5
resources:
limits:
cpus: "0.1"
memory: 50M
restart_policy:
condition: on-failure
ports:
- "4000:80"
networks:
- webnet
networks:
webnet:
该docker-compose.yml文件告诉Docker执行以下操作:
在我们docker stack deploy首先运行命令之前:
docker swarm init
注意:如果您没有运行docker swarm init则会收到“此节点不是群集管理器”的错误。
现在让我们来运行吧。您需要为您的应用程序命名。在这里,它被命名为 getstartedlab:
docker stack deploy -c docker-compose.yml getstartedlab
单个服务堆栈在一台主机上运行已部署映像的5个容器实例,获取一项服务的服务ID:
docker service ls
查找服务的输出web,并附上应用名称。名称为getstartedlab_web。还列出了服务ID,以及副本数,映像名称和公开端口。
在服务中运行的单个容器称为任务。任务被赋予以数字递增的唯一ID,最多为replicas您定义 的数量docker-compose.yml。列出服务任务:
docker service ps getstartedlab_web
如果只列出系统上的所有容器,则任务也会显示,但不会被服务过滤:
docker container ls -q
可以使用curl -4 http://localhost:4000连续多次运行,或者在浏览器中转到该URL并点击刷新几次。
无论哪种方式,容器ID都会发生变化,从而证明负载均衡; 对于每个请求,以循环方式选择5个任务中的一个来响应。容器ID与上一个命令(docker container ls -q)的输出匹配。
注意:根据您环境的网络配置,容器最多可能需要30秒才能响应HTTP请求,这是由于容器响应redis的时间设置,在等待连接超时
到此,docker的基础知识都已经完成
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。