docker的ms-ti

三剑客简介

docker-machine

docker技术是基于Linux内核的cgroup技术实现的,那么问题来了,在非Linux平台上是否就不能使用docker技术了呢?答案是可以的,不过显然需要借助虚拟机去模拟出Linux环境来。
docker-machine就是docker公司官方提出的,用于在各种平台上快速创建具有docker服务的虚拟机的技术,甚至可以通过指定driver来定制虚拟机的实现原理(一般是virtualbox)。

docker-compose

docker镜像在创建之后,往往需要自己手动pull来获取镜像,然后执行run命令来运行。当服务需要用到多种容器,容器之间又产生了各种依赖和连接的时候,部署一个服务的手动操作是令人感到十分厌烦的。
docker-compose技术,就是通过一个.yml配置文件,将所有的容器的部署方法、文件映射、容器连接等等一系列的配置写在一个配置文件里,最后只需要执行docker-compose up命令就会像执行脚本一样的去一个个安装容器并自动部署他们,极大的便利了复杂服务的部署。

docker-swarm

swarm是基于docker平台实现的集群技术,他可以通过几条简单的指令快速的创建一个docker集群,接着在集群的共享网络上部署应用,最终实现分布式的服务。

Dockerfile

# 菜鸟
# https://www.runoob.com/docker/docker-dockerfile.html
# https://www.cnblogs.com/panwenbin-logs/p/8007348.html#_label1

### 如何在 Docker 中设置容器的网络传输速率限制 为了控制 Docker 容器中的网络流量,可以利用 `tc` 命令来设定上传和下载的速度限制。这通常涉及到在网络命名空间内部操作,因此需要确保目标容器已经安装了必要的工具集,比如 `iproute2` 工具包[^1]。 对于希望实施这种限速策略的情况,下面是一个具体的例子说明怎样通过自定义脚本或命令行参数,在启动容器之前准备好环境并施加相应的约束: #### 准备工作 假设有一个基于 Ubuntu 的镜像用于测试目的,则可以在构建阶段就加入所需的软件包支持: ```dockerfile FROM ubuntu:latest RUN apt-get update && \ apt-get install -y iproute2 ``` 接着按照常规流程完成镜像制作过程之后,就可以准备下一步的操作了。 #### 实现方法一:使用宿主机上的 tc 命令 如果允许的话,可以直接从宿主机层面出发,针对特定接口应用流量整形规则。考虑到每个独立运行着的服务实例都会被分配独一无二的名字前缀(例如 eth0@ns_),所以能够精确指定作用范围而不影响其他部分的工作状态。 具体做法如下所示: ```bash # 获取容器ID CID=$(docker ps | grep my_container_name | awk '{print $1}') # 进入对应容器的NetNS(网络命名空间) sudo nsenter --target $(docker inspect -f '{{.State.Pid}}' ${CID}) --net # 设置出口带宽为1Mbps,入口带宽为512Kbps sudo tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 70ms sudo tc qdisc add dev eth0 ingress sudo tc filter add dev eth0 parent ffff: protocol ip u32 match ip dst 0.0.0.0/0 police rate 512kbit drop flowid :1 ``` 上述指令序列展示了如何进入某个正在运行中的容器所属的 NetNS 并对其主要网卡设备执行 QoS (Quality of Service) 配置;其中 TBF (Token Bucket Filter) 是一种常用的算法用来平滑突发的数据流从而达到平均化的效果。 #### 实现方法二:借助第三方插件简化部署 除了手动编写复杂的 shell 脚本来管理这些细节外,还有更简便的方式可供选择——即采用专门为此设计过的开源项目如 pipework 或者 wondershaper 等等。它们往往提供了更加友好易用的功能界面以及额外的安全特性保障。 以 WonderShaper 为例,只需要简单几步就能搞定一切准备工作: ```bash git clone https://github.com/magnific0/wondershaper.git ~/wondershaper cd ~/wondershaper/ make install service docker restart # 可能需要重启服务使更改生效 # 对单个容器做上下行速率调整 docker exec -ti some-container-name bash -c "/usr/local/bin/wondershaper eth0 1024 512" ``` 以上就是关于如何在 Docker 环境下有效地管理和调控各个应用程序之间的通信性能的一些基本思路和技术手段介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值