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证 ...
随机推荐
- [转载]virtualbox安装64bit客户机
原文地址:virtualbox安装64bit客户机作者:kunth 1.虚拟64bit客户机 (1)安装virualbox (2)bios设置 supports virtualization为able ...
- iOS刻度尺换算之1mm等于多少像素理解
刚好看到一个刻度尺文章,实现手机屏幕上画刻度尺. 然后就有一个疑问:这个现实中的1mm(1毫米)长度与手机像素之间的换算比怎么来的呢? 看了下demo代码,发现这样写的: CGFloat sc_w = ...
- 使用安全rm
rm命令像一把刀子一样,玩不好会伤到自己.不要觉得自己头脑清醒,人总有犯迷糊的时候. 在.bashrc中设置PATH=/home/me/bin/:$PATH 在自己的bin目录下,添加rm脚本mv - ...
- java 获取当前日期和特殊日期格式转换
1.获取当前日期: package com.infomorrow.dao; import java.sql.Timestamp; import java.util.Calendar; import ...
- Ubuntu菜鸟入门(十五)—— 安装aras2下载软件
一.安装arias2 sudo add-apt-repository ppa:t-tujikawa/ppa sudo apt-get update sudo apt-get install aria2 ...
- 开源的PaaS平台
原文地址:https://blog.csdn.net/mypods/article/details/9366465 1.Stackato Stackato 是一个应用平台,用来创建私有.安全和灵活的企 ...
- Elasticsearch初探(一)
一.安装(Linux篇) 现在的开源软件越来越成熟,都打好包了,下载后直接解压就可以测试了. curl -L -O https://artifacts.elastic.co/downloads/ela ...
- winform中键盘和鼠标事件的捕捉和重写
在编写winform应用程序时,有时需要无论在哪个控件获取焦点时,对某一个键盘输入或者鼠标事件都进行同样的操作.比如编写一个处理图片的应用程序时,希望无论当前哪个控件获得焦点,当用户按上.下.左.右键 ...
- Java Date and Calendar examples
Java Date and Calendar examples This tutorial shows you how to work with java.util.Date and java.uti ...
- Apache Hadoop下一代MapReduce框架(YARN)简介 (Apache Hadoop NextGen MapReduce (YARN))
英文看着头大,先试着翻译一下. E文原文:http://archive.cloudera.com/cdh5/cdh/5/hadoop/hadoop-yarn/hadoop-yarn-site/YARN ...