Docker 服务
1. Docker服务
作为一名后端攻城狮,对“服务”这个概念一定不陌生。比如,我们做一个会员系统,它可能会需要数据库、缓存、消息队列,这些都是中间件服务,除此以外可能还需要依赖其它的Dubbo服务。
在Docker中,服务就是用于生产环境的容器(“containers in production”)。我们可以这样来理解这句话,当我们运行某个镜像时,其实就产生了一个镜像实例,这个实例我们把它叫做容器,接下来我们对它做个升级,比如一些配置负载均衡,配置域名解析映射等,最终它以web服务的形式运行,那么这个升级版的容器就是Docker服务。可以设想一下开发一个Java应用程序是怎样的过程,首先建一个工程,然后编写代码,打成jar包,在内网运行,配置nginx,配置告警及监控,经过这一系列操作后,客户端才能通过公网访问到这个服务。(PS:类比Java的话,镜像就是类,容器就是对象,服务就是一个成型的APP产品,或者叫服务)
一个服务只运行一个映像,但是它将镜像运行的方式进行了编码,比如应该使用什么端口,应该运行多少个容器副本,以便服务具有所需的能力,等等。可以通过改变运行该软件的容器实例的数量来对服务进行扩容,从而为流程中的服务分配更多的计算资源。
幸运的是,使用Docker平台很容易定义、运行和扩容服务。只需要写一个docker-compose.yml文件即可。
2. 第一个docker-compose.yml文件
创建一个文件,文件命名为docker-compose.yml,将下列内容粘贴到文件中,保存

一个docker-compose.yml文件是一个YAML文件,它定义了Docker容器在生产环境中的行为。
这个docker-compose.yml文件告诉Docker要做以下事情:
- 从注册中心上pull(拉取)镜像
- 以web服务的形式运行该映像的5个实例,限制每个实例最多只能使用CPU单个内核时间的10%(也可以是“1.5”,表示每个实例只能使用1.5个内核)和50MB内存
- 如果一个容器失败,立即重启它
- 将主机上的4000端口映射到web的80端口
- 指示web容器通过叫webnet的负载均衡网络共享80端口
- 用默认设置定义webnet网络
3. 运行新的负载均衡的APP
首先,运行

接下来,给APP起个名字,比如叫getstartedlab

我们的单个服务堆栈在一台主机上运行了5个容器实例,让我们来看一看

除了“docker service ls”,我们还可以通过“docker stack services”来查看

还可以通过修改docker-compose.yml来动态的扩展app,修改为后需要再执行一次

完整的演示

4. 备忘单

Docker 服务的更多相关文章
- docker 服务注册
docker 服务注册 etcd docker run -d --name etcd -p 4001:4001 -p 7001:7001 elcolio/etcd
- Docker服务端防护
运行一个容器或应用程序的核心是通过 Docker 服务端.Docker 服务的运行目前需要 root 权限,因此其安全性十分关键. 首先,确保只有可信的用户才可以访问 Docker 服务.Docker ...
- 安装指定版本的docker服务
参考博客:Docker CE 镜像源站 参考博客:docker启动异常driver not supported 1. 说明 之前部署docker服务的时候都是安装最新的docker版本,并使用dock ...
- docker学习-----docker服务的安装
docker 以下观点个人理解,只做参考 一.docker本身的优势 1.docker他本身是一个容器,用来方便我们项目打包,做服务器虚拟化,统一开发者环境等多种优势:运行于docker上的项目可以快 ...
- Docker 随 docker服务重启
在创建时添加 重启 docker run --restart=always -d --name web -p : -v /data/web:/usr/local/tomcat/webapps tom ...
- 【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World
操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service doc ...
- reboot 后 Docker服务及容器自动启动设置
https://blog.csdn.net/wxb880114/article/details/82904765 重启reboot操作系统后,发现docker 服务未启动,容器也未启动,天生反骨,怎么 ...
- CentOS 7安装Docker服务详细过程
---恢复内容开始--- Docker 简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟 ...
- 重启docker服务应用,自启停命令.
#重启docker服务应用,不自动开启docker容器 docker update --restart=no (docker容器CONTAINER ID 或 docekr容器NAMES) #重启doc ...
随机推荐
- Vector 特性
1.Vector是一个连续内存占用的容器 2.每次Insert,都会将插入的对象先析构,然后复制一个副本添加到容器内 3.容器的大小先是1,然后是2,然后是4,也可以使用reserve来重新制定队列的 ...
- Linux常用资源(不断改进中)
Linux常用命令全集: http://linux.chinaitlab.com/special/linuxcom/Index.html ubuntu 12.04 配置指南: http://www. ...
- 重装完的win10卡“请稍等”,然后电脑不断自动重启还是卡在“请稍等”?
http://bbs.pcbeta.com/viewthread-1625778-1-1.html 说实话我用U盘安装win10遇到过几次这种情况,不管是win10正式版还是之前的个别win10测试版 ...
- python数据存储技巧
1.文本存储 比如我们现在有10篇文章,每篇文章由三部分组成,题目,作者,内容(title,author,content),然后要求这三个部分明确展示出来,并且每篇文章之间用=====分割. 大致思路 ...
- springmvc+swagger构建Restful风格文档
本次和大家分享的是java方面的springmvc来构建的webapi接口+swagger文档:上篇文章分享.net的webapi用swagger来构建文档,因为有朋友问了为啥.net有docpage ...
- Mina框架(实战详解)
Apache Mina Server 是一个网络通信应用框架,为开发高性能和高可用性的网络应用程序提供了非常便利的框架. 特点:异步的NIO框架,将UDP当成"面向连接"的协议 一 ...
- (二)SpringBoot基础篇- 静态资源的访问及Thymeleaf模板引擎的使用
一.描述 在应用系统开发的过程中,不可避免的需要使用静态资源(浏览器看的懂,他可以有变量,例:HTML页面,css样式文件,文本,属性文件,图片等): 并且SpringBoot内置了Thymeleaf ...
- Java多线程-线程的同步与锁【转】
出处:http://www.cnblogs.com/linjiqin/p/3208843.html 一.同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏. 例如:两个线程 ...
- Redis使用单进程单线程方式的优缺点分析
[转] http://www.syyong.com/db/Redis-why-the-use-of-single-process-and-single-threaded-way-so-fast.htm ...
- Windows上使用Thunderbird与GPG发送和解密公钥加密的电子邮件
作者:荒原之梦 原文链接:http://zhaokaifeng.com/?p=552 非对称加密的原理: 最先出现的加密方法是对称加密.在对称加密算法中是不区分公钥和私钥的,加密与解密使用的都是同一个 ...