[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 ...
随机推荐
- one of neural network
map source:https://github.com/microsoft/ai-edu Fundamental Principle inputs: characteristic value th ...
- 语义分割学习之SegNet的C++编译
Abstract 安装好Segnet并使用Python进行训练和测试之后,考虑项目的应用,需要在C++的工程环境下进行继续开发,所以这里的主要内容是用C++建立工程,使用相应的数据集和权重参数文件进行 ...
- nyoj 412 Same binary weight ()
Same binary weight 时间限制:300 ms | 内存限制:65535 KB 难度:3 描述 The binary weight of a positive integer ...
- set map symbol
set 声明 let set = new Set();即创建了一个空的set 赋值 let set = new Set(['张三','李四','王五']); 特性 似于数组,但它的一大特性就是所有元素 ...
- python三种格式化输出
name = '张三'age = 22job = Engineersalary = 99999999 info1 = ''' ---------- info1 of %s ---------- nam ...
- 百度下载给的termux是个坑
termux有两个版本,0.32以及0.64.百度提供0.32的下载,太坑爹.谷歌则是0.64的下载.32版uname -m识别为armv8l,绝对影响你进行其它linux的部署.通过atilo脚本会 ...
- JVM的内存回收机制
垃圾回收机制,简称gc.对堆与方法区的对象进行回收,因为java不像c需要编程人员手动clear,虚拟机通过垃圾回收算法,对堆与方法区的对象进行自动回收处理. 1.引用计数法(jvm没有采用,因为当两 ...
- 剑指Offer-25.复杂链表的复制(C++/Java)
题目: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否则 ...
- sqlalchemy 源码分析之create_engine引擎的创建
引擎是sqlalchemy的核心,不管是 sql core 还是orm的使用都需要依赖引擎的创建,为此我们研究下,引擎是如何创建的. from sqlalchemy import create_eng ...
- css居中布局的几种方式
一.水平居中 若是行内元素,则直接给其父元素设置text-align: center即可 若是块级元素,则直接给该元素设置margin: 0 auto即可 若子元素包含浮动元素,则给父元素设置widt ...