企业级容器技术docker(12)docker swarm
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相关推荐
- 【云原生之企业级容器技术 Docker实战一】Docker 介绍
目录 一.Docker 介绍 1.1 容器历史 1.2 Docker 是什么 1.3 Docker 和虚拟机,物理主机 1.4 Docker 的组成 1.5 Namespace 1.6 Control ...
- 企业级容器技术 Docker
企业级容器技术 Docker docker隔离级别中包含两个核心组成: Namespace(名称空间):namespace是Linux系统的底层概念,在内核层实现,即有一些不同类型的命名空间被部署在内 ...
- 容器技术介绍之docker核心技术概述
容器简单来说是一种沙盒技术,将应用"装"进沙盒中,像集装箱一样,把应用封装起来,使得应用之间不会相互干扰,而放进沙盒中的应用也方便"搬家".本文基于docker ...
- 企业级容器技术Docker
1 Docker 介绍和基础操作 移植性比较好----拥有独自的仓库,但要内核新 可移植性,标准化,隔离性) 1.1.2 Docker 是什么 Docker 是基于 Linux 内核实现,最早采用 L ...
- 容器技术对比(Docker/LXC/LXD/Multipass)
Docker LXC LXD Multipass 基本介绍 为了打破"程序即应用"的观念,通过镜像imges将作业系统核心除外,运作应用程序所需的系统环境,由下而上打包,达到应用程 ...
- 5、《每天5分钟玩转Docker容器技术》学习--Docker镜像
------------------------------------重要说明------------------------------------ 本文内容都是参考Cloudman系列进行学习, ...
- 3、《每天5分钟玩转Docker容器技术》学习-Docker架构
------------------------------------重要说明------------------------------------ 本文内容都是参考Cloudman系列进行学习, ...
- 4、《每天5分钟玩转Docker容器技术》学习--Docker环境搭建
------------------------------------重要说明------------------------------------ 本文内容都是参考Cloudman系列进行学习, ...
- 容器技术之二.Docker的安装和常见问题
Docker的安装要求 Docker支持在多种平台上使用,包括Mac.Windows.Cloud以及Linux系统上等.由于Docker是基于Ubuntu发布的,所以官方更推荐在Ubuntu上使用Do ...
最新文章
- Direct3D Draw函数 异步调用原理解析
- 线程安全的无锁RingBuffer的实现
- WebApi中跨域解决办法
- Intel Realsense D435运行报错 RuntimeError: Camera not connected! dev.hardware_reset()函数需加睡眠sleep()
- 美国无人机在火星首飞成功,创造历史,3米飞行高度悬停30秒
- 对于以太坊虚拟机 (EVM)及其相关知识的讲解
- 原反补移码的概念应用以及异或的作用
- api-ms-win-crt-process-l1-1-0.dll 丢失的处理,遇到问题和完美解决
- 远程视频监控之驱动篇(LED)
- 哈工大2015秋 编译原理课程实验1:词法分析
- Chrome插件之一键保存网页为PDF1.1发布
- GridView里面的Item高度设置
- 基于经纬度做航线图可视化
- 旋转矩阵(Rotation matrix):旋转轴与旋转角 ( axis and angle )
- 北京大学计算机学院刘利,信息科学学院 科研动态 深化新文科计算机教学改革,实施分类分层次教学体系研讨会在京召开...
- 【全套完结】电磁场与电磁波实验-----全套Matlab仿真实验
- 七剑下天山,谈谈我认识的精准营销
- 云服务器系统结构图,云服务器系统结构图
- ubuntu 运行c语言文件路径,ubuntu上解压目录里的文件到指定文件夹
- 拼多多商品详情接口,拼多多详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,拼多多APP详情