docker(三):服务services
docker中services位于container上面,services可以控制image的运行方式,包括image运行时所需资源的大小
创建yml文件
yml文件定义了容器运行时的行为。我们先创建一个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:
其中,各个字段含义如下
- image是容器仓库的名字
replicas表示生成的实例个数,上述表示5个实例cpus表示占用cpu的时间,上述表示每个实例占用单核cpu10%的运行时间memory表示占用内存大小condition: on-failure表示当一个实例故障时,重启容器ports将主机的4000端口映射到web的80端口network使用默认设置配置webnet
运行服务
执行以下指令运行服务
docker swarm init
docker stack deploy -c docker-compose.yml hello
其中hello是自行设置的应用程序名
使用以下命令可以获取服务id
$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
kv6p22irsbds hello_web replicated 5/5 friendlyhello:latest *:4000->80/tcp
#or
$ docker stack services hello
ID NAME MODE REPLICAS IMAGE PORTS
kv6p22irsbds hello_web replicated 5/5 friendlyhello:latest *:4000->80/tcp
使用以下命令可以获得各个实例的信息
$ docker stack ps hello
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
g77x3nxbyeim hello_web.1 friendlyhello:latest pc Running Running 25 minutes ago
a329cldr272o hello_web.2 friendlyhello:latest pc Running Running 25 minutes ago
zr8putqyx4nd hello_web.3 friendlyhello:latest pc Running Running 25 minutes ago
x7cun5z3kuu3 hello_web.4 friendlyhello:latest pc Running Running 25 minutes ago
kc5lb0ni8y5k hello_web.5 friendlyhello:latest pc Running Running 25 minutes ago
拓展应用程序
docker支持即时更新部署,可以在运行时更新应用程序而无需停止服务,更新语句与运行语句一致
docker stack deploy -c docker-compose.yml hello
关闭应用程序
docker stack rm hello
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
docker(三):服务services的更多相关文章
- docker微服务部署之:三,搭建Zuul微服务项目
docker微服务部署之:二.搭建文章微服务项目 一.新增demo_eureka模块,并编写代码 右键demo_parent->new->Module->Maven,选择Module ...
- .net core结合Consul集群&Docker实现服务治理
实战中的asp.net core结合Consul集群&Docker实现服务治理 https://www.cnblogs.com/guolianyu/p/9614050.html 0.目录 整体 ...
- springcloud与docker微服务架构实战--笔记
看了<微服务那些事>之后,Spring boot和Spring Cloud的关系理清楚了,Spring cloud各个模块的作用也了解了. 但是,Spring cloud 与Docker的 ...
- Openstack+Kubernetes+Docker微服务实践之路--RPC
重点来了,本文全面阐述一下我们的RPC是怎么实现并如何使用的,跟Kubernetes和Openstack怎么结合. 在选型一文中说到我们选定的RPC框架是Apache Thrift,它的用法是在Ma ...
- 在Ubuntu14.04系统POWER8服务器上搭建Docker Registry服务
本文描述了如何在POWER8服务器上搭建一个本地化的Docker镜像仓库,主要涉及镜像制作,Docker Registry服务启动等.希望能够对在非X86服务器上搭建Docker仓库的同学提供参考. ...
- 基于 Consul 的 Docker Swarm 服务发现
Docker 是一种新型的虚拟化技术,它的目标在于实现轻量级操作系统的虚拟化.相比传统的虚拟化方案,Docker 虚拟化技术有一些很明显的优势:启动容器的速度明显快于传统虚拟化技术,同时创建一台虚拟机 ...
- docker compose 服务启动顺序控制
概要 docker-compose 可以方便组合多个 docker 容器服务, 但是, 当容器服务之间存在依赖关系时, docker-compose 并不能保证服务的启动顺序. docker-comp ...
- docker微服务部署之:七、Rancher进行微服务扩容和缩容
docker微服务部署之:六.Rancher管理部署微服务 Rancher有两个特色用起来很方便,那就是扩容和缩容. 一.扩容前的准备工作 为了能直观的查看效果,需要修改下demo_article项目 ...
- docker微服务部署之:六、Rancher管理部署微服务
docker微服务部署之:五.利用DockerMaven插件自动构建镜像 一. 什么是Rancher Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源 ...
- Docker Swarm 服务编排之命令
一.简介 Docker有个编排工具docker-compose,可以将组成某个应该的多个docker容器编排在一起,同时管理.同样在Swarm集群中,可以使用docker stack 将一组相关联的服 ...
随机推荐
- WinDbg常用命令系列---错误消息显示!error
!error 这个!error扩展命令解码并显示有关错误值的信息. !error Value [Flags] 参数: Value指定以下错误代码之一:Win32.Winsock.NTSTATUS.Ne ...
- linux系统管理第一章作业
上机作业: 1.请用命令查出ifconfig命令程序的绝对路径 [root@localhost ~]# which ifconfig /usr/sbin/ifconfig 2.请用命令展示以下命令哪些 ...
- 【字符串】后缀数组SA
后缀数组 概念 实际上就是将一个字符串的所有后缀按照字典序排序 得到了两个数组 \(sa[i]\) 和 \(rk[i]\),其中 \(sa[i]\) 表示排名为 i 的后缀,\(rk[i]\) 表示后 ...
- [C++] 对象指针使用方法
对象指针:指向类对象的指针 类指针指向类变量(对象)的地址 对象指针定义格式: 类类型 *变量名: 举例: #include <iostream> using namespace std; ...
- AOP通知类型
AOP通知类型 前置通知 在目标方法执行之前进行操作 后置通知 在目标方法执行之后 进行操作 环绕通知 在目标方法执行之前 和之后进行操作 public Object arount() 异常抛出通知 ...
- 利用select/poll监听多个设备详解
如果一个应用程序去处理多个设备,例如应用程序读取网路数据,按键,串口,一般能想到的有三种方法: 方法1:串行+阻塞的方式读取:while(1) { read(标准输入);read(网络);}缺点:每当 ...
- 性能测试分析过程(二)cpu 使用率过高的分析方法
Linux 系统下 cpu 使用率过高的分析方法 1.通过 top 命令可以很明显查看出哪个进程耗cpu比较高 2. ps -mp 25147-o THREAD,tid,time\top -Hp pi ...
- java生成订单编号
随着项目用户数量的扩大,高并发随之而来.那么如何在当前系统生成唯一编号呢? 一台数据库可以用自增,集群呢?当然也有随之的解决方案,但是最好的还是在项目生成了唯一的编号再插入到数据库.而不是数据库插入了 ...
- nodejs 读取目前下所有文件
var fs = require('fs'); var join = require('path').join; function getJsonFiles(jsonPath) { let jsonF ...
- [LeetCode] 686. Repeated String Match 重复字符串匹配
Given two strings A and B, find the minimum number of times A has to be repeated such that B is a su ...