[TimLinux] docker CentOS7入门——服务(2)
1. 服务含义
分布式应用中,应用的不同部分即称为“服务”,视频网站是一个分布式应用,包含有:数据的存储,视频的转码,前端展示等部分,对应的这些部分即称为相应的服务。docker平台中,定义、运行和扩展服务只需要编写'docker-compose.yml'文件即可完成。
2. docker-compose.yml
- version: ""
- services:
- web:
- image: timscm/get-started:part1
- deploy:
- replicas:
- restart_policy:
- condition: on-failure
- resources:
- limits:
- cpus: "0.1"
- memory: 50M
- ports:
- - "80:80"
- networks:
- - webnet
- networks:
- webnet:
解释:通过docker-compose.yml,可以启动一个新的分布式应用,启动的应用中将使用5个容器实例,可认为提供了5个服务,5个容器对外提供统一的访问地址,实现web应用的负载均衡。
3. 运行
- [root@VM_0_7_centos t]# docker stack deploy -c docker-compose.yml getstartedlab
- this node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again
- [root@VM_0_7_centos t]# docker swarm init
- Swarm initialized: current node (tmc0otz2vl76mhgrk9isrojwq) is now a manager.
- To add a worker to this swarm, run the following command:
- docker swarm join --token SWMTKN--00f7xsxxxxn1lnzl4fh5r71ggxxvvpnxxjbhhpfi xx.xx.xx.xx:port-xx
- To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
- [root@VM_0_7_centos t]# docker stack deploy -c docker-compose.yml getstartedlab
- Creating network getstartedlab_webnet
- Creating service getstartedlab_web
- [root@VM_0_7_centos t]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 829561c83a3f timscm/get-started:part1 "python app.py" seconds ago Up seconds /tcp getstartedlab_web..t3ovke2vxbwsegcsb3vl6yhka
- 24f3e2202918 timscm/get-started:part1 "python app.py" seconds ago Up seconds /tcp getstartedlab_web..wtwv8sv5vy5h0y4l323mxnib9
- 68bd5b5e43c4 timscm/get-started:part1 "python app.py" seconds ago Up seconds /tcp getstartedlab_web..r9a7thbxyyfdcarjcv3ikckw3
- 97d5f75e4747 timscm/get-started:part1 "python app.py" seconds ago Up seconds /tcp getstartedlab_web..p2xmxat872mpm5kbs7l56kbjh
- c083970ea25b timscm/get-started:part1 "python app.py" seconds ago Up seconds /tcp getstartedlab_web..fm1fyut03xg02gl17lqc1xyln
- [root@VM_0_7_centos t]# curl http://localhost/
- <h3>Hello World!</h3><b>Hostname:</b> 24f3e2202918<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>[root@VM_0_7_centos t]# curl http://localhost/
- <h3>Hello World!</h3><b>Hostname:</b> 68bd5b5e43c4<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>[root@VM_0_7_centos t]# curl http://localhost/
- <h3>Hello World!</h3><b>Hostname:</b> 829561c83a3f<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>[root@VM_0_7_centos t]# curl http://localhost/
- <h3>Hello World!</h3><b>Hostname:</b> 97d5f75e4747<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>[root@VM_0_7_centos t]# curl http://localhost/
- <h3>Hello World!</h3><b>Hostname:</b> c083970ea25b<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>[root@VM_0_7_centos t]# curl http://localhost/
- <h3>Hello World!</h3><b>Hostname:</b> 24f3e2202918<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>[root@VM_0_7_centos t]# curl http://localhost/
- <h3>Hello World!</h3><b>Hostname:</b> 68bd5b5e43c4<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>[root@VM_0_7_centos t]# curl http://localhost/
- <h3>Hello World!</h3><b>Hostname:</b> 829561c83a3f<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>[root@VM_0_7_centos t]#
4. 其他关联
- [root@VM_0_7_centos t]# docker stack ls
- NAME SERVICES ORCHESTRATOR
- [root@VM_0_7_centos t]# docker stack deploy -c docker-compose.yml getstartedlab
- Creating network getstartedlab_webnet
- Creating service getstartedlab_web
- [root@VM_0_7_centos t]# docker stack ls
- NAME SERVICES ORCHESTRATOR
- getstartedlab Swarm
- [root@VM_0_7_centos t]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 75c49c1c7bbd timscm/get-started:part1 "python app.py" seconds ago Up second /tcp getstartedlab_web..wejacfpetviacfqb5f5w0njma
- ddd2880e62b2 timscm/get-started:part1 "python app.py" seconds ago Up seconds /tcp getstartedlab_web..wd0fou2dqwjsl1x170awqgq23
- 6fd24ce51a46 timscm/get-started:part1 "python app.py" seconds ago Up second /tcp getstartedlab_web..behnw0975n2gcdsa9e3ij4fzy
- f6022e0dcad1 timscm/get-started:part1 "python app.py" seconds ago Up second /tcp getstartedlab_web..mtoh61tvkpoz4iaksuo275r94
- 2714fb2f59ef timscm/get-started:part1 "python app.py" seconds ago Up seconds /tcp getstartedlab_web..dlgywjyo6xsitgjtec5hxef73
- [root@VM_0_7_centos t]# docker stack rm getstartedlab
- Removing service getstartedlab_web
- Removing network getstartedlab_webnet
- 这个操作,会自动 stop 掉容器,不需要单独调用 docker stop操作,有一定掉延迟。
[TimLinux] docker CentOS7入门——服务(2)的更多相关文章
- [TimLinux] docker CentOS7 入门——容器(1)
1. 编写Dockerfile # 将官方 Python 运行时用作父镜像 FROM python: # 将工作目录设置为 /app WORKDIR /app # 将当前目录内容复制到位于 /app ...
- [TimLinux] docker CentOS7安装docker-ce最新版
1. 环境 $ lsb_release -a # 需要安装 redhat-lsb-core 包 LSB Version: :core-4.1-amd64:core-4.1-noarch Distrib ...
- Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务
本篇为Docker从入门到掉坑第二篇:基于Docker构建SpringBoot微服务,没有看过上一篇的最好读过 Docker 从入门到掉坑 之后,阅读本篇. 在之前的文章里面介绍了如何基于docker ...
- 微服务 + Docker + Kubernetes 入门实践 目录
微服务 + Docker + Kubernetes 入门实践: 微服务概念 微服务的一些基本概念 环境准备 Ubuntu & Docker 本文主要讲解在 Ubuntu 上安装和配置 Dock ...
- 【运维技术】VM虚拟机上使用centos7安装docker启动gogs服务教程【含B站视频教程】
VM虚拟机上使用centos7安装docker启动gogs服务视频教程 BiliBili视频教程链接飞机票,点我 使用VMware Workstation安装Centos7 MinMal系统 第一步: ...
- Docker从入门到掉坑(四):上手k8s避坑指南
在之前的几篇文章中,主要还是讲解了关于简单的docker容器该如何进行管理和操作,在接下来的这篇文章开始,我们将开始进入对于k8s模块的学习 不熟悉的可以先回顾之前的章节,Docker教程系列文章将归 ...
- [转帖]Docker从入门到动手实践
Docker从入门到动手实践 https://www.cnblogs.com/nsky/p/10853194.html dockerfile的图很好呢. 但是自己没有做实验 , 其实知识都挺好. do ...
- docker-9 supervisord 参考docker从入门到实战
参考docker从入门到实战 使用 Supervisor 来管理进程 Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务.但我们经常需要在一个机 ...
- Docker快速入门
Docker已经火了很长一段时间,最近打算在阿里云上好好熟悉一下Docker的相关应用,为今后的工作做准备. 基本概念 Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是do ...
随机推荐
- egret常用功能
egret常用功能<pre>//////////////////////////////////////////////////////////////////////////////// ...
- ASP.NET Core 1.0: 指定Static File中的文件作为default page
指定一个网站的default page是很容易的事情.譬如IIS Management中,可以通过default page来指定,而默认的index.html, index.htm之类,则早已经被设置 ...
- [Error]Archive for required library: 'C:/Users/fk/.m2/repository/com/sun/xml/bind/jaxb-core/2.2.7/jaxb-core-2.2.7.jar'
Eclipse报错: Description Resource Path Location Type Archive for required library: 'C:/Users/fk/.m2/re ...
- HTML中的表格标签
表格是网页制作中使用最多的工具之一,在制作网页时,使用表格可以更清晰地排列数据.但是在实际制作过程中,表格更多用在网页布局的定位上.很多网页都是以表格布局的.这是因为表格在文本和图像的位置控制方面 ...
- Arduino 将 String 转化为 int
Arduino 将 String 转化为 int 函数:toInt() 实例: String my_str = "; int my_int = my_str.toInt();
- ESP8266 使用AT指令
ESP8266 使用AT指令 问题:串口调试工具输入AT指令没返回结果 分析板子有两种模式 下载模式(默认) 运行模式 解决办法: 方法一:按下板子上的 RST 键位 方法二:使用 [安信可串口调试工 ...
- nyoj 168-房间安排 (贪心)
168-房间安排 内存限制:64MB 时间限制:3000ms 特判: No 通过数:33 提交数:71 难度:2 题目描述: 2010年上海世界博览会(Expo2010),是第41届世界博览会.于20 ...
- iOS UIView x Android View
- ACL2019: 《GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction》源码解析
论文地址:<GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction> G ...
- 基于Vue的日历组件
可以标注重要日子 自己写的,可能不是特别很好,大家多提意见!!! 地址:https://github.com/jsLWQ/calendar