Docker 入门(Mac环境)- part 3 服务(services)
part-3 服务(services)
简介
一个应用的规模的扩大是很常见的事情,会经常用到负载均衡这些,如要实现这些功能,我们就会用到docker中更高一层的东西-service(服务)。
比如说一个视频分享网站,包括存储的部分,前端展示的部分,这些不同的部分就可以称之为服务。定义/运行/管理成规模的应用在docker中很容易实现,通过一个docker-compose.yml文件就可以了。
docker-compose.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:
配置文件的各项指标的含义:把这个服务称之为“web”,版本是3,5个拷贝,每个用cpu不超过10%,内存不超过50M,失败了就重启,端口映射是4000到80,通过webnet实现负载均衡。
app启动
- 在用
docker stack deploy
之前可以使用docker swarm init
来初始化一下,然后通过docker stack deploy -c docker-compose.yml getstartedlab
来启动,可以通过docker service ls
查看进程,效果如下:
➜ docker_file docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
k0315l4qcvdo getstartedlab_web replicated 5/5 wang/get-started:part-2 *:4000->80/tcp
- 通过
docker service ps getstartedlab_web
可以查详细进程
➜ docker_file docker service ps getstartedlab_web
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
s9ygrgj69gxp getstartedlab_web.1 wang/get-started:part-2 linuxkit-025000000001 Running Running 2 minutes ago
xy1ot8kxyqac getstartedlab_web.2 wang/get-started:part-2 linuxkit-025000000001 Running Running 2 minutes ago
r7x6c9rpf1dg getstartedlab_web.3 wang/get-started:part-2 linuxkit-025000000001 Running Running 2 minutes ago
ogx1pyedra2e getstartedlab_web.4 wang/get-started:part-2 linuxkit-025000000001 Running Running 2 minutes ago
63a32pzagsr2 getstartedlab_web.5 wang/get-started:part-2 linuxkit-025000000001 Running Running 2 minutes ago
- 查看container
➜ docker_file docker container ls -q
596ea073ac78
5059346a8474
bde0a1787a38
9c6e956b3d05
d450035e17b8
- 查看多个拷贝(负载均衡)运行的效果,用了下面命令后然后浏览器刷新几次页面,会发现有hostname的变化
➜ docker_file curl -4 http://localhost:4000
<h3>Hello World!</h3><b>Hostname:</b> bde0a1787a38<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>%
参数调整
- 调整yml后可以通过
docker stack deploy -c docker-compose.yml getstartedlab
来更新
关闭应用和swarm
docker stack rm getstartedlab
- 离开swarm,
docker swarm leave --force
- 这里的感觉就是swarm相当于一个基础环境,类似于virtualenv这种概念
Docker 入门(Mac环境)- part 3 服务(services)的更多相关文章
- Docker 入门 第三部分: 服务
目录 Docker 入门 第三部分: 服务 先决条件 介绍 你的第一个 docker-compose.yml 文件 docker-compose.yml 运行你新建的负载均衡应用 扩展应用程序 卸载应 ...
- Docker入门(四):服务(Services)
这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...
- docker for mac
MacOS上通过docker部署 docker环境准备 1.访问这里安装好docker,需要注册账号才能下载dmg安装包:https://hub.docker.com/editions/communi ...
- Docker 入门(Mac环境)-part 1 入门基本操作
part-1 入门基本操作 Docker 安装 去官网下载对应的版本,然后点击安装就可以了: 如果环境是Linux,可以参照之前写的get started教程 查看docker版本 docker -- ...
- 【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World
操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service doc ...
- mac下通过docker搭建LEMP环境
在mac下通过docker搭建LEMP环境境 1.安装virtualbox.由于docker是在lxc环境的容器 2.安装boot2docker,用于与docker客户端通讯 > brew up ...
- Docker学习笔记之在开发环境中使用服务发现
0x00 概述 服务发现应用是很多服务化系统的组成部分,所以在开发.测试环境中也就有必要配备一套服务发现体系来配合我们的开发.测试工作.在这一小节里,我们就来谈谈如何在 Docker 环境下部署服务发 ...
- Mac下docker搭建lnmp环境 + redis + elasticsearch
之前在windows下一直使用vagrant做开发, 团队里面也是各种开发环境,几个人也没有统一环境,各种上线都是人肉,偶尔还会有因为开发.测试.生产环境由于软件版本或者配置不一致产生的问题, 今年准 ...
- docker入门与部署微服务--学习笔记
最近公司进一步去windows,走向 linux+云化. 原来的一大坨windows虚拟机服务器都要转向linux, 既然走向linux的话,那么docker肯定是要涉足的. 故学习了docker入门 ...
- Mac 环境部署Docker私有仓库
docker的私有仓库类似maven的私服,一般用于公司内部搭建一个类似docker hub的环境,这样上传.下载镜像速度较快,本文将演示如何在mac上利用docker-machine搭建无需SSL证 ...
随机推荐
- Python实现鸢尾花数据集分类问题——基于skearn的NaiveBayes
Python实现鸢尾花数据集分类问题——基于skearn的NaiveBayes 代码如下: # !/usr/bin/env python # encoding: utf-8 __author__ = ...
- React(0.13) 定义一个input组件,使其输入的值转为大写
<!DOCTYPE html> <html> <head> <title>React JS</title> <script src=& ...
- Sqlserver大数据量分区表创建
/* 逆向删除对象 DROP PARTITION SCHEME [PS_BasicPolicy2014]; DROP PARTITION FUNCTION [PF_BasicPolicy2014]; ...
- 【java】浅析java组件中的布局管理器
这篇博文笔者介绍一下java组件中,常用的布局管理器.java组件中的布局方式有好几十种,所有的这些布局管理器都实现了java.awt.LayoutManager接口.接下来笔者介绍一下常用的5种布局 ...
- 【ASP.NET】Layout使用详解
1.母板页_Layout.cshtml 类似于传统WebForm中的.master文件,起到页面整体框架重用的目地 1.母板页代码预览 1 <!DOCTYPE html> 2 <ht ...
- Spark日志清洗
日志数据清洗,主要采用spark 的定时任务,清洗出有效数据,并保存到hive数据仓库中存储.常用流程如下: 参考:https://gaojianhua.gitbooks.io/bigdata-wik ...
- linux手工释放内存
先使用sync命令以确保文件系统的完整性,sync 命令运行 sync 子例程,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node.已延迟的块 I/O 和读写映射文件. 再执行下面任意一条命 ...
- VMware Linux 共享文件夹 虚拟机无共享文件解决方法
恢复虚拟机ubuntu后,首先,点击 虚拟机——安装VMware Tools(Install VMware Tools),这时我们会在Ubuntu系统桌面上发现VMware Tools的光盘图标. 双 ...
- Redis命令汇总
设置服务后台启动 cd /usr/local/redisview redis.conf 将daemonize no改为 daemonize yes保存退出 启动:./reids-server redi ...
- JPA的多表复杂查询
转 JPA的多表复杂查询:详细篇 原文链接: https://mp.weixin.qq.com/s/7J6ANppuiZJccIVN-h0T3Q 2017-11-10 从小爱喝AD钙 最近工作中由于 ...