[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 ...
随机推荐
- PowerDesigner列名、注释内容互换
资料来源:PowerDesigner列名.注释内容互换 文中一共提供了2种操作的代码. (1)将Name中的字符COPY至Comment中 (2)将Comment中的字符COPY至Name中 使用方法 ...
- 软件 ---- idea启动
1.将配置转移到别的盘符,避免重做系统后,之前的配置就没了 找到安装的位置,默认安装的话地址一般是 C:\Program Files\JetBrains\IntelliJ IDEA 2017.2 ID ...
- MySQL数据库之MyISAM与InnoDB的区别
MySQL数据库之MyISAM与InnoDB的区别 从以下几个方面: 1.存储结构 每个MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型. .frm文件存储表定义 ...
- Nginx 匹配流程一览
在 nginx server 模块中,location 的定义长被用来匹配一个标准的 URI, 并根据 URI 的不同做出相应的服务方案. nginx location 匹配的优先级 在 locati ...
- GentOS 7 安装步骤
附上原作者的博客网址: https://blog.csdn.net/qq_42570879/article/details/82853708 1.CentOS下载CentOS是免费版,推荐在官网上直接 ...
- 在Windows Server 2019通过Docker Compose部署Asp.Net Core
一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...
- 2019-9-28:渗透测试,phpstudy后门,利用复现
9月20号爆出Phpstudy存在隐藏后门,简单复现下后门效果 该文章仅供学习,利用方法来自网络文章,仅供参考 目标机:win7系统,安装phpstudy 2018版,php版本5.2或php 5.4 ...
- 公众号在线Markdown编辑器,支持公式
公众号排版不支持Markdown,用自带的富文本编辑器排版出来的格式十分丑陋,尤其是公式,竟然连"Mathjax"都不支持,但好在支持"带格式复制",也即可以将 ...
- 《手把手教你》系列练习篇之3-python+ selenium自动化测试(详细教程)
1. 简介 前面介绍了,XPath, id , class , link text, partial link text, tag name, name 七大元素定位方法,本文介绍webdriver ...
- 【springcloud】3.记一次网关优化
今天早上过来突然被告知我们提供给外系统的接口服务出问题了,失败率高达20% 很奇怪,昨天周末,今天也没做什么处理,怎么突然变成这样了 1.接口测试 第一反应是接口是不是出问题了,然后我立马打开jmet ...