版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/defending/article/details/83417202
part3
一个docker-compose.yml
文件是一个YAML文件,它定义了Docker容器在生产中应如何表现。
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执行以下操作:
-
从注册表拉我们在步骤2中上传的iamge。
-
将该映像的5个实例作为一个被调用的服务运行
web
,限制每个实例使用,最多10%的CPU(跨所有内核)和50MB的RAM。 -
如果一个失败,立即重启容器。
-
将主机上的端口4000映射到
web
端口80。 -
指示
web
容器通过称为负载平衡的网络共享端口80webnet
。(在内部,容器本身web
在短暂的端口发布到 80端口。) -
webnet
使用默认设置(负载平衡的覆盖网络)定义网络。
运行新的负载均衡应用
docker swarm init
docker stack deploy -c docker-compose.yml getstartedlab
docker service ls
docker service ps getstartedlab_web
扩展应用程序
您可以通过更改replicas
值docker-compose.yml
,保存更改并重新运行docker stack deploy
命令来扩展应用程序:
docker stack deploy -c docker-compose.yml getstartedlab
-
将应用程序删除
docker stack rm
:docker stack rm getstartedlab
-
离开群。
docker swarm leave --force
docker stack ls # List stacks or apps
docker stack deploy -c <composefile> <appname> # Run the specified Compose file
docker service ls # List running services associated with an app
docker service ps <service> # List tasks associated with an app
docker inspect <task or container> # Inspect task or container
docker container ls -q # List container IDs
docker stack rm <appname> # Tear down an application
docker swarm leave --force # Take down a single node swarm from the manager