浅谈Dockerfile中RUN、CMD与ENTRYPOINT
在容器化开发中,理解 Dockerfile 的指令至关重要,尤其是与命令执行相关的 RUN、CMD 和 ENTRYPOINT。它们虽关联紧密,但作用时机与目的存在本质差异。本文将详细剖析这三个指令的功能、区别及最佳实践,助力你编写高效且灵活的 Dockerfile。 RUN:构建镜像时执行命令 执行阶段:RUN 指令在镜像构建期间运行,执行结果会被写入生成的镜像中。 主要用途:安装软件包、配置环境、修改文件系统。例如安装依赖、创建文件夹等。 语法示例: 12RUN apt-get update && apt-get install -y curlRUN mkdir /app 镜像层影响:每个 RUN 指令都会生成一个新的镜像层,因此合理合并命令可以减少镜像层数,优化镜像体积。 CMD:指定容器启动时的默认命令与参数 执行阶段:CMD 指令是在容器运行时执行,用以设置默认启动命令或参数。 可被覆盖:通过 docker run 提供命令参数时会覆盖 CMD 指令。 用途场景: 如果 Dockerfile 无 ENTRYPOINT,则 CMD...
快速配置Docker镜像加速与日志管理
Docker 是现代容器化应用的核心技术,配置合适的镜像加速器和日志管理策略,对于提升构建性能和系统稳定性至关重要。本文将指导您如何快速配置国内可用的 Docker 镜像加速器,同时优化日志文件大小与轮转,以及设置容器数据存储路径,助力打造高效且可维护的容器环境。 配置目标 使用国内可靠的镜像加速器,提高镜像拉取速度 优化 Docker 日志文件大小和轮转策略,避免日志爆满 统一数据存储根目录,便于管理与备份 使用 systemd 作为 CGroup 驱动,提高兼容性与性能 执行配置命令请通过以下命令步骤完成配置: 123456789101112131415161718192021222324# 创建 Docker 配置目录(如不存在)sudo mkdir -p /etc/docker# 写入 daemon.json 配置文件sudo tee /etc/docker/daemon.json <<-'EOF'{ "exec-opts":...
修改KubeSphere外网访问端口
KubeSphere 作为一款强大的容器管理平台,其默认的外网访问端口是 30880。在实际企业网络环境中,出于安全策略或网络规划的考虑,用户可能需要将该端口调整为其它符合公司规范的端口号,以确保访问的灵活性和合规性。本文将详细介绍如何修改 KubeSphere 的外网访问端口,帮助您高效便捷地完成定制化配置。 了解 NodePort 端口范围的重要性KubeSphere 的外网访问通常是通过 Kubernetes 的 NodePort 类型服务实现的。NodePort 允许将集群内部服务暴露在指定的端口上,默认范围通常是 30000 到 32767。若要使用非默认端口,则需要先确保 Kubernetes 集群允许该端口范围,否则服务暴露可能会失败或不被访问。 因此,修改访问端口前,需要先确认或调整 Kubernetes 的 NodePort 端口范围,使新端口被系统支持,以保证后续配置有效。 调整 NodePort 端口范围示例请参考对应 Kubernetes 版本的官方文档,或参考我的完整教程:k8s 修改默认 NodePort 端口范围...
K8s修改NodePort端口范围详细指南
在 Kubernetes 集群中,NodePort 是一种常用的 Service 类型,默认分配的端口范围是 30000-32767。这一范围在某些企业网络环境下可能存在限制,导致无法使用默认端口。本文将详细介绍如何修改 Kubernetes 默认 NodePort 端口范围,以满足不同网络策略和安全需求。 为什么需要修改 NodePort 端口范围默认的 NodePort 端口范围较大且固定,但某些场景下: 企业防火墙策略限制了开放端口范围; 端口冲突需要调整可用端口区间; 集群资源隔离与管理需要定制端口范围。 因此,调整 NodePort 端口范围成为保障集群服务正常访问的重要操作。 修改 kube-apiserver 启动参数来调整端口范围Kubernetes API Server 通过参数 --service-node-port-range 来定义 NodePort 的端口范围。通过调整该参数即可灵活设置所需端口区间。 定位配置文件若您的 Kubernetes 集群是基于 kubeadm 安装,配置文件位于 Master...
CentOS离线Kubekey一键部署K8s集群指南
在国内网络环境复杂的情况下,直接在线安装 Kubernetes 集群常常受限、耗时且易出错。基于此,本文分享利用 KubeKey,结合离线安装包,实现 CentOS 系统下一键离线部署 Kubernetes 集群的完整流程。该方案针对 Kubernetes v1.23.10、Docker 20.10.8 和 KubeSphere v3.3.2 版本进行了深度优化,支持单 Master 节点与多节点 Worker 节点部署,特别适合生产环境或网络隔离场景。 通过本文,您可以快速搭建稳定、高效的 K8s 集群,免除因网络限制造成的安装困扰,极大提升运维效率。 注:当前方案仅支持单 Master 节点配置,多 Master 高可用建议采用二进制手动部署或其他方案。 环境准备硬件与网络要求 节点角色 IP地址 主机名 CPU/内存 硬盘大小 Master 主节点 10.0.0.87 master 4核 CPU / 8GB 内存 40GB 普通节点1 10.0.0.88 node1 4核 CPU / 8GB...
Linux命令行使用阿里云盘入门指南
阿里云盘CLI是一款基于命令行的阿里云盘客户端,模拟了Linux Shell中的文件处理命令,极大地方便了Linux用户进行云端文件管理。它不仅支持交互式命令操作,还具备JavaScript插件扩展能力,支持同步备份及批量下载相册等实用功能,是阿里云盘用户的高效工具。 安装步骤在CentOS系统中,可以通过官方提供的RPM仓库快速安装阿里云盘CLI客户端。具体步骤如下: 12sudo curl -fsSL http://file.tickstep.com/rpm/aliyunpan/aliyunpan.repo | sudo tee /etc/yum.repos.d/tickstep-aliyunpan.repo > /dev/nullsudo yum install aliyunpan...
Linux命令行使用百度云盘入门指南
在服务器或无图形界面的环境下使用百度网盘,传统的网页方式不够便捷。本文介绍一款基于 Linux Shell 操作风格的百度网盘命令行客户端——BaiduPCS-Go,帮助你在 CentOS 系统中实现文件的快速管理与下载,操作简单,功能丰富,适合开发者和运维人员使用。 安装指南确保使用具备 root 权限的账户执行以下操作,方便将程序放置于系统路径中: 12345678# 下载 BaiduPCS-Go 压缩包wget https://github.com/qjfoidnh/BaiduPCS-Go/releases/download/v3.9.5/BaiduPCS-Go-v3.9.5-linux-amd64.zip# 解压文件unzip BaiduPCS-Go-v3.9.5-linux-amd64.zip && cd BaiduPCS-Go-v3.9.5-linux-amd64# 移动并赋予执行权限,将可执行文件放入系统路径mv BaiduPCS-Go /usr/local/bin/baidu-pcs && chmod +x...
RockyLinux服务器一键初始化配置脚本
在部署全新的 RockyLinux 服务器时,系统管理员往往需要进行一系列繁琐的基础配置工作,包括设置主机名、关闭安全策略、调整系统资源限制、安装常用工具及配置 Docker 环境等。这些手动操作不仅耗时,而且容易因疏忽导致配置错误。为此,本文提供了一份一键初始化脚本,帮助您快速完成基础环境搭建,保障服务器具备稳定、高效的运行基础。 脚本设计理念 自动化执行:只需复制并运行脚本,减少重复劳动力 安全考虑:需以 root 身份运行,脚本中包含权限检测 灵活变量配置:关键参数如主机名和用户名可自定义修改 实用工具集成:安装常用命令行工具,加快后续操作效率 Docker 环境完整部署:引入阿里云镜像源,提高安装速度与稳定性 系统性能优化:通过调整虚拟内存、文件描述符等系统参数提升性能 一键初始化脚本详解将以下脚本复制到 RockyLinux 服务器终端,并以 root...
为CentOS普通用户授予Sudo权限
在 Linux 系统管理中,sudo 命令是一个至关重要的工具。它允许普通用户以超级用户(root)或其他用户的身份执行特定的命令,而无需直接共享 root 密码。这种机制遵循最小权限原则,有助于提升系统的安全性。本指南将详细说明如何在 CentOS 系统上为普通用户安全地授予 sudo 权限。 前提条件执行以下操作需要您当前拥有 root 权限,或者您的用户已经被授予了 sudo 权限。 为何使用 visudo修改 sudo 配置文件(通常是 /etc/sudoers)存在风险。错误的语法可能导致所有用户(包括 root,如果配置不当)失去 sudo 权限,甚至可能锁住系统。 visudo 命令是编辑 sudoers 文件的唯一推荐方式。它具有以下优点: 文件锁定:防止多个用户同时编辑,避免冲突。 语法检查:在保存退出时检查文件语法。如果存在错误,它会提示您并提供选项(重新编辑、退出不保存等),从而防止无效配置生效。 要使用 visudo,请执行: 1sudo visudo 这会使用系统默认的文本编辑器(通常是 vi 或 vim)打开 /etc/sudoers...
Linux系统分区最佳实践
在配置新的 Linux 系统时,合理的分区策略对系统性能、稳定性和维护效率有着重要影响。根据不同的应用场景和需求,选择合适的分区方案能够优化磁盘空间利用,提升系统安全性,并简化日常运维工作。本文基于一台硬盘容量为 200GB、内存为 12GB 的机器,介绍两种常用的分区设计方案:简化分区方案和完整分区方案。 简化分区方案:快速部署与易于管理对于普通用户或者测试环境,简化分区方案以结构简单、操作便捷为优势,适合对系统分区没有复杂需求的场景。其主要分区设计如下: /boot 分区 推荐大小:1GB 作用:存放系统启动所需的内核和引导文件,独立分区有助于提升启动稳定性。 交换空间 Swap 推荐大小:12GB(与物理内存大小相等) 作用:系统内存不足时用于数据交换,防止进程崩溃,对部分内存敏感应用尤为重要。 根分区 / 推荐大小:剩余全部空间 作用:安装操作系统及其相关软件,包含系统配置和主要文件。 这种分区方式减少了分区数量,降低了管理复杂度,尤其适合快速安装和系统资源较为均衡的环境。 完整分区方案:细粒度管理与安全性能优化面向生产环境或复杂应用(例如运行...