docker srack部署
写一个compose文件

version: '3'
services:web1:image: passyt.com/library/nginxports:- "80:80"volumes:- web-data:/usr/share/nginx/htmlnetworks:- my_netdeploy:replicas: 3
volumes:web-data:networks:my_net:

使用命令进行部署

docker stack deploy -c docker-compose.yml my_cluster
Creating network my_cluster_my_net
Creating service my_cluster_web1

部署完成可以进行查看

docker stack services my_cluster ID                  NAME                MODE                REPLICAS            IMAGE                             PORTS
xushxic7xzgp        my_cluster_web1     replicated          3/3                 passyt.com/library/nginx:latest   *:80->80/tcp

这样就已经完成部署。

如果想要进行拉伸操作,也是只用修改文件里面的参数再运行一边就行了。

replicas: 6docker service ps my_cluster_web1
ID                  NAME                IMAGE                             NODE                DESIRED STATE       CURRENT STATE                    ERROR               PORTS
xb8xpocp2p4b        my_cluster_web1.1   passyt.com/library/nginx:latest   server1             Running             Running 4 minutes ago
37uotbf3rfj9        my_cluster_web1.2   passyt.com/library/nginx:latest   passyt.com          Running             Running 4 minutes ago
opiddn1x83ef        my_cluster_web1.3   passyt.com/library/nginx:latest   server3             Running             Running 4 minutes ago
ty6endwithlq        my_cluster_web1.4   passyt.com/library/nginx:latest   server1             Running             Running less than a second ago
sfq9p7pstsnk        my_cluster_web1.5   passyt.com/library/nginx:latest   passyt.com          Running             Starting 2 seconds ago
9kclhr40td07        my_cluster_web1.6   passyt.com/library/nginx:latest   server3             Running             Starting 1 second ago

这样就部署完成 ,十分的方便。部署的和用命令敲的效果相同,实现了负载均衡,每个节点上都分布了两个。

docker ps
CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS              PORTS               NAMES
667a186b73f0        passyt.com/library/nginx:latest   "nginx -g 'daemon of…"   40 seconds ago      Up 37 seconds       80/tcp              my_cluster_web1.6.9kclhr40td07qb6mnuzmji0u1
3b2a20cabd87        passyt.com/library/nginx:latest   "nginx -g 'daemon of…"   5 minutes ago       Up 5 minutes        80/tcp              my_cluster_web1.3.opiddn1x83efnnbpvi7zz7jix

如何不进入容器,就修改发布页面,因为现在部署的将所有卷都放在了一起,所以要找到逻辑卷的位置。

[root@server1 compose]# docker volume ls
DRIVER              VOLUME NAME
local               my_cluster_web-data
[root@server1 compose]# docker volume inspect my_cluster_web-data
"Mountpoint": "/var/lib/docker/volumes/my_cluster_web-data/_data"
[root@server1 compose]# cd /var/lib/docker/volumes/my_cluster_web-data/_data
[root@server1 _data]# ls
50x.html  index.html

这是挂载点,直接进入修改即可。但是这有一个问题,就是挂接节点不同步,在一台机子上进行修改只能保证该节点上的两个数据相同。

同时也可以部署一个监控,使用visualizer镜像,根据官方文档的提示进行部署。

 visualizer:image: dockersamples/visualizer:stableports:- "8080:8080"stop_grace_period: 1m30svolumes:- "/var/run/docker.sock:/var/run/docker.sock"deploy:placement:constraints: [node.role == manager]


将这些命令写入docker-compose.yml文件中
依然使用docker stack deploy -c docker-compose.yml my_cluster这个命令进行读取。

监控作完之后可以进行软件的跟新替换,使用监控看的更为直观。
将原来的nginx替换为httpd服务

web1:image: passyt.com/library/httpdports:- "80:80"volumes:- web-data:/usr/local/apache2/htdosnetworks:- my_netdeploy:replicas: 3

下面这段跟在下面,跟着官方文档配置

 update_config:parallelism: 1  ##每次更新几个delay: 10s   ##多长时间更新一次restart_policy:condition: on-failure


使用文件给容器作限制
去/sys/fs/cgroup/memory/docker/文件下,这里面的文件就是docker容器中第内存限制文件。
如何查看不同容器中的限制?首先将每个容器的id找到

docker ps
CONTAINER ID        IMAGE                             COMMAND              CREATED             STATUS              PORTS               NAMES
665523b216c6        passyt.com/library/httpd:latest   "httpd-foreground"   6 minutes ago       Up 6 minutes        80/tcp              my_cluster_web1.1.qikzpp0

最前面的id是个缩写,我们需要进入完整id的目录中去,可以使用tab健进行补齐操作。
进入之后查看一个文件。

cat memory.limit_in_bytes
9223372036854771712

发现下面的数字很大,基本上没有作限制。
那么如何对内存直接进行限制呢?依然查看docker的官方文档。在文件中加入这些参数。

 limits:  ##最大占用cpus: '0.50' ##cpu的50%memory: 50M  ##50M内存reservations:  ##最基本会分配这么多cpus: '0.25' memory: 20M

再加载这个文件,去cgroup目录进行查看(注:这个文件每加载一次相当于将容器删除后再建立,所以每次的id都不相同,注意查看)。

cat memory.limit_in_bytes
52428800

这个时候已经将容器进行了限制。

可视化
在网上拉取两个镜像
portainer/portainer和portainer/agent
将两个镜像上传至私有仓库
在官方可以下载其stack文件,接着直接进行部署就行了。也是十分的方便。

企业级容器技术docker(12)docker swarm相关推荐

  1. 【云原生之企业级容器技术 Docker实战一】Docker 介绍

    目录 一.Docker 介绍 1.1 容器历史 1.2 Docker 是什么 1.3 Docker 和虚拟机,物理主机 1.4 Docker 的组成 1.5 Namespace 1.6 Control ...

  2. 企业级容器技术 Docker

    企业级容器技术 Docker docker隔离级别中包含两个核心组成: Namespace(名称空间):namespace是Linux系统的底层概念,在内核层实现,即有一些不同类型的命名空间被部署在内 ...

  3. 容器技术介绍之docker核心技术概述

    容器简单来说是一种沙盒技术,将应用"装"进沙盒中,像集装箱一样,把应用封装起来,使得应用之间不会相互干扰,而放进沙盒中的应用也方便"搬家".本文基于docker ...

  4. 企业级容器技术Docker

    1 Docker 介绍和基础操作 移植性比较好----拥有独自的仓库,但要内核新 可移植性,标准化,隔离性) 1.1.2 Docker 是什么 Docker 是基于 Linux 内核实现,最早采用 L ...

  5. 容器技术对比(Docker/LXC/LXD/Multipass)

    Docker LXC LXD Multipass 基本介绍 为了打破"程序即应用"的观念,通过镜像imges将作业系统核心除外,运作应用程序所需的系统环境,由下而上打包,达到应用程 ...

  6. 5、《每天5分钟玩转Docker容器技术》学习--Docker镜像

    ------------------------------------重要说明------------------------------------ 本文内容都是参考Cloudman系列进行学习, ...

  7. 3、《每天5分钟玩转Docker容器技术》学习-Docker架构

    ------------------------------------重要说明------------------------------------ 本文内容都是参考Cloudman系列进行学习, ...

  8. 4、《每天5分钟玩转Docker容器技术》学习--Docker环境搭建

    ------------------------------------重要说明------------------------------------ 本文内容都是参考Cloudman系列进行学习, ...

  9. 容器技术之二.Docker的安装和常见问题

    Docker的安装要求 Docker支持在多种平台上使用,包括Mac.Windows.Cloud以及Linux系统上等.由于Docker是基于Ubuntu发布的,所以官方更推荐在Ubuntu上使用Do ...

最新文章

  1. Direct3D Draw函数 异步调用原理解析
  2. 线程安全的无锁RingBuffer的实现
  3. WebApi中跨域解决办法
  4. Intel Realsense D435运行报错 RuntimeError: Camera not connected! dev.hardware_reset()函数需加睡眠sleep()
  5. 美国无人机在火星首飞成功,创造历史,3米飞行高度悬停30秒
  6. 对于以太坊虚拟机 (EVM)及其相关知识的讲解
  7. 原反补移码的概念应用以及异或的作用
  8. api-ms-win-crt-process-l1-1-0.dll 丢失的处理,遇到问题和完美解决
  9. 远程视频监控之驱动篇(LED)
  10. 哈工大2015秋 编译原理课程实验1:词法分析
  11. Chrome插件之一键保存网页为PDF1.1发布
  12. GridView里面的Item高度设置
  13. 基于经纬度做航线图可视化
  14. 旋转矩阵(Rotation matrix):旋转轴与旋转角 ( axis and angle )
  15. 北京大学计算机学院刘利,信息科学学院 科研动态 深化新文科计算机教学改革,实施分类分层次教学体系研讨会在京召开...
  16. 【全套完结】电磁场与电磁波实验-----全套Matlab仿真实验
  17. 七剑下天山,谈谈我认识的精准营销
  18. 云服务器系统结构图,云服务器系统结构图
  19. ubuntu 运行c语言文件路径,ubuntu上解压目录里的文件到指定文件夹
  20. 拼多多商品详情接口,拼多多详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,拼多多APP详情

热门文章

  1. MSTAR数据的处理
  2. python scrapy安装_Python安装Scrapy
  3. SLAM及深度学习环境配置总教程
  4. 祝朋友们端午节快乐!
  5. Java实现字母转化
  6. 进程切换及一些常见概念(面试必问)
  7. 构造方法的”和用private修饰的权限
  8. 自适应+两栏三栏布局
  9. 51单片机 AD转换
  10. 2017大学计算机基础书,2017大学计算机基础试题「含答案」