千家信息网

Docker优化的方法有哪些

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本篇内容主要讲解"Docker优化的方法有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Docker优化的方法有哪些"吧!一.介绍和之前介绍的Cran
千家信息网最后更新 2025年12月01日Docker优化的方法有哪些

本篇内容主要讲解"Docker优化的方法有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Docker优化的方法有哪些"吧!

一.介绍

和之前介绍的Crane不同,来自好雨云(GoodRain)的云帮(CloudHelp目前已改名RainBond)是基于K8S的,说实话,感觉比Crane的开源态度更好点,看得出来是认真在弄的。Crane我发的issue至今无人回复,感觉应该是凉了

关于云帮的定位,可以参考下官方的FAQS

Q: 云帮开源版的定位是什么?A: 中小企业CI/CD平台,生产环境的应用管理平台。云帮不是拉近开发和运维的距离,而是让开发和运维做他们本来应该做的事情。开发对程序和业务负责,运维对资源负责,云帮作为开发和运维的助手。Q: 发布开源版的目的是什么?A: 希望能有更多的企业和个人爱好者享受到容器及云计算技术所带来的高效与便利。通过社区版让广大的用户了解云帮产品的设计理念。Q: 开源版发展规划A: 云帮是个平台级的产品,即使是开源版我们首要关注的是稳定性,产品设计会本着 功能简洁够用 的原则,降低使用门槛,让用户以最简单的方式来体验容器技术带来的红利。Q: 云帮企业版是否有生产环境运行的案例?开源版是不是只是演示和测试的"玩具"?A: 说到这个问题,我想需要明确一下大家判断一项技术或产品在"生产环境" 运行的标准是什么。只有对这个标准或定义明确了,讨论这个问题才有意义。咱们从稳定性、可维护性、扩展性、支持服务四个方面来说明:1. 稳定性:云帮公有云实际上就是我们在公有IaaS平台之上运行的一套云帮企业版。云帮公有云已上线运营超过700天,没有发生过一次因底层程序而造成的事故,SLA可达99.999% ,开源版基础模块的核心代码与企业版 100%一致。2. 可维护性:云帮基础技术单元是Docker,服务编排和调度使用kubernetes,这两款软件是目前关注度最高的开源项目,文档和技术社区都非常成熟。云帮的其他模块我们都采用Docker镜像的方式进行打包,利用kubernetes内部的高可用机制保证高可用。因此平台的维护成本非常低,再加上好雨技术团队多年的平台维护经验,云帮的部署、监控体系都非常的完善。3. 扩展性:云帮平台云生支持分布式部署,借助kubernetes的容器调度机制,可以数秒钟启停上千个容器。平台容器主机也支持动态伸缩,可以在3分钟内上线新的容器主机。4. 服务支持:针对开源版我们提供及时的产品更新服务,平台bug,安全补丁会按照开发进度第一时间修复。提供社区、微信/QQ群在线支持,并提供完备的文档支持。另外云帮企业版目前主要是私有化项目,已超过100家企业部署了企业版,如: zdoo.com 、姚记彩票网等。云帮社区版也有不少中小企业在生产环境中运行。

不说其他的,但是可以看出云帮是会持续维护的,起码不会突然凉凉,不是为了开源而开源的玩具,所以如果需要一个基于K8s的管理平台,云帮或许也是个选择。

二.安装

准备工作直接看官方文档吧 为啥会有3.4和3.5呢,因为我这个教程放了一阵子,然后发现官方发布了3.5...那么我就介绍3.5好了,毕竟3.4实验性质更多一点

总结一下:

  • CentOS7的系统(必须是systemd的,Debian理论上可以,但是推荐CentOS7)

  • 配置足够(要求配置不低,实际使用建议集群)

  • NTP校时(配置ntpd以及修改时区)

  • 服务器必须配置静态IP,确保不会因为DHCP在重启后发生IP变动

  • 环境干净(官方建议装了Docker和kubelet的全部卸载了再来)

  • 最好下面安装完后就不要去修改hostname(非要改请同时修改/etc/host和/etc/hostname,并保证各节点不重复)

# 安装云帮bash <(curl -s http://repo.goodrain.com/install/3.5/start.sh)

基本上算是一键安装了(如果你环境没问题的话)

可以看出来这个gr-docker-engine似乎是好雨云基于Docker 1.12的修改版,具体修改了啥就不清楚了,也可能是单纯的重新封装.

Hmm,这个安装比较极其漫长,请耐心等待,并且建议挂个screen防止断线

PS.如果发生长时间卡住不动的情况,请参照以下官方解决方案

检查当前任务是否生成相关日志文件,若未生成,则可以新开一个终端,执行systemctl restart rainbond-node如重启node后以及未执行,使用`grctl tasks get <任务>` 检查依赖任务是否执行成功,若未成功,则检查依赖任务执行日志

完成后访问显示的URL,也就是http://服务器IP:7070/

第一次访问请注册(默认第一个注册为管理员)

注册完自动登录,界面还是挺好看的

添加计算节点的命令如下,这个是在管理节点上运行的,只要确保你为目标机器配置了SSH免密登陆(建议测试下能够在管理节点上直接登录过去),然后直接运行就OK了

# 添加计算节点到node集群里grctl node add -i <计算节点内网ip> --Role compute # 计算节点uiduuid=$(grctl node list | grep <计算节点内网ip> | awk '{print $2}') # 安装计算节点服务grctl install compute --nodes $uuid # 上线计算节点服务grctl node up $uuid

云帮的使用花样还是比较多的,完整的请查看官方文档-->传送门

我这边只介绍基础的

这个是直接从官方的示例部署的,需要知道的是,每个云帮都会由好雨云分配一个二级域名,泛解析到你的节点上,所以访问用的是那个域名,似乎是可以通过修改/etc/goodrain/console.py中的WILD_DOMAIN来变更,不过不确定可行性。

另外的从Dockerfile啊,DockerCompose啥的创建应用就不提了,自己去玩玩吧。这个在我看来没有给你过多的选项,面板只是作为应用管理的存在,(服务器啥的)设置啥的全都是帮你固定的(自动配置),也许企业版有更多的设置,但是在我看来似乎是够用了,不用你去操心和折腾也许正是团队或者公司需要的(?)

三.优化

1、 修改文件描述符限制

vi /etc/security/limits.conf#增加如下内容root soft nofile 102400root hard nofile 102400* soft nofile 102400* hard nofile 102400

如果要生效需要重启

2、 内核参数调优

vi /etc/sysctl.conf#增加如下内容net.ipv4.neigh.default.gc_stale_time=120net.ipv4.conf.all.rp_filter=0net.ipv4.conf.default.rp_filter=0net.ipv4.conf.default.arp_announce=2net.ipv4.conf.all.arp_announce=2net.ipv4.tcp_max_tw_buckets=5000net.ipv4.tcp_syncookies=1net.ipv4.tcp_max_syn_backlog=1024net.ipv4.tcp_synack_retries=2net.ipv6.conf.all.disable_ipv6=1net.ipv6.conf.default.disable_ipv6=1net.ipv6.conf.lo.disable_ipv6=1net.ipv4.conf.lo.arp_announce=2vm.swappiness=10vm.vfs_cache_pressure=50vm.overcommit_memory=1 net.core.somaxconn = 65535net.netfilter.nf_conntrack_max = 655350net.netfilter.nf_conntrack_tcp_timeout_established = 1200 #使修改马上生效sysctl -p

3、 增加NFS挂载服务并发数

vi /etc/sysctl.conf#增加如下内容sunrpc.tcp_slot_table_entries = 128 #使修改马上生效sysctl -p

4、 开启容器swap使用限制

如果在启动容器时只指定-m而不指定--memory-swap,那么--memory-swap默认为-m的两倍,比如

docker run -it -m 200M image

表示容器最多使用200M的物理内存和200M的swap。 如果提示如下错误,可能是因为主机上默认不启用cgroup来限制swap分区

WARNING : Your kernel does not support swap limit capabilities, memory limited without swap.

可以使用如下命令来解决

echo GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1" >> /etc/default/grub grub2-mkconfig -o /boot/grub2/grub.cfg >/dev/stdout 2>&1

到此,相信大家对"Docker优化的方法有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

企业 平台 服务 容器 节点 官方 技术 环境 支持 管理 运行 配置 产品 内容 开发 方法 建议 文档 更多 社区 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 微信软件开发小程序 泰安联想服务器总代理销售电话 保密工作和网络安全工作要求 写数据库都需要什么软件 国家网络安全网人工电话 高新区服务器上门回收报价 欧柏泰克互联网科技专修学院 数据库从联机制 新的网络安全零信任安全 网络安全法自什么时候实行 人从高速服务器能出去吗 怎么下载游戏服务器连接失败 网络安全法中的企业责任 军人手机网络安全措施 安全服务器接入地址设置方法 软件开发可以外包么 board服务器是什么意思 山东宽途互联网科技有限公司 软件开发中占多少成本 关注网络安全风险 浪潮服务器代理商北京云空间 吴江区专业网络技术创新服务 政策型数据库 为什么苹果手机无服务器 服务器怎么连接有线网络 广州软件开发群 网络安全运行与维护试题 首届网络安全讲话 哈尔滨龙辰互联网科技有限公司 软件开发员工绩效考核表模板
0