怎样在docker容器中安装软件?apt-get和yum命令如何使用?
发布时间 - 2025-06-05 00:00:00 点击率:次在docker容器中安装软件需先确认系统类型并选择对应包管理工具。一、确认系统类型以选择apt-get(debian/ubuntu)、yum(centos/rhel)或apk(alpine),可通过cat /etc/os-release查看;二、使用apt-get时应先执行apt-get update再安装软件,加-y参数自动确认,并清理缓存以减小镜像体积;三、使用yum安装时同样加-y参数,一般无需手动更新源,旧镜像可能需启用epel源;四、dockerfile中建议合并多条命令为一行以减少图层数量,如用apt的run apt-get update && apt-get install -y curl git && apt-get clean && rm -rf /var/lib/apt/lists/* 或用yum的run yum install -y nginx && yum clean all。
在 Docker 容器中安装软件其实和在普通 Linux 系统里差不多,区别主要是你得先确认容器用的是哪种系统(比如 Debian/Ubuntu 还是 CentOS/Alpine),然后才能决定该用 apt-get、yum 还是别的包管理工具。关键点就是:选对命令,注意更新源,尽量精简操作步骤。
一、确认容器使用的操作系统类型
不同系统的包管理器不一样,这是最基础也是最容易忽略的一点:
-
Debian / Ubuntu 系列使用
apt-get或apt -
CentOS / RHEL 系列使用
yum -
Alpine Linux 使用
apk
你可以通过运行 cat /etc/os-release 来查看当前容器的操作系统信息。如果不确定,也可以从镜像名大致判断,比如 nginx:alpine 就是 Alpine 系统,centos:7 当然是用的 yum。
二、使用 apt-get 安装软件的正确方式
如果你是在基于 Debian 的容器里(比如 ubuntu、debian、node 等官方镜像),那就用 apt-get。
常见写法如下:
apt-get update && apt-get install -y 包名
几点建议:
每次安装前都要先执行
apt-get update,否则可能找不到包。加
-y参数是为了自动确认,避免交互式提示中断构建过程。-
安装完记得清理缓存(尤其是写 Dockerfile 的时候):
apt-get clean && rm -rf /var/lib/apt/lists/*
举个例子,你想安装 curl 和 net-tools:
apt-get update && apt-get install -y curl net-tools
三、使用 yum 安装软件的注意事项
对于 CentOS 或 RHEL 系列的容器,用的就是 yum:
yum install -y 包名
同样建议加上 -y 自动确认。但不像 apt 那样需要频繁更新源(默认会自动检查),所以一般不需要手动执行 yum makecache,除非你修改了源配置。
例如安装 telnet 和 vim:
yum install -y telnet vim
需要注意的是,有些旧版本的镜像可能没有 vim,只能用 vi,或者要额外启用 EPEL 源才能安装某些包。
四、Dockerfile 中安装软件的小技巧
在写
Dockerfile 时,推荐把多个安装命令合并成一行,这样可以减少图层数量,减小最终镜像体积:
比如用 apt 的:
RUN apt-get update && \
apt-get install -y curl git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*用 yum 的:
RUN yum install -y nginx && \
yum clean all这样不仅效率高,还能避免缓存残留影响后续构建。
基本上就这些。用对命令,注意系统类型,再加上一点优化技巧,就能在容器里顺利安装你需要的软件了。
# linux
# centos
# git
# docker
# nginx
# 操作系统
# 工具
# 区别
# cURL
# var
# vim
# ubuntu
# debian
# 镜像
# 新源
# 的是
# 图层
# 如用
# 这是
# 如果你
# 是在
# 容器里
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用PHP快速搭建高效网站?分步指南
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
如何快速搭建安全的FTP站点?
如何做网站制作流程,*游戏网站怎么搭建?
深圳网站制作的公司有哪些,dido官方网站?
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
微信小程序 闭包写法详细介绍
如何用腾讯建站主机快速创建免费网站?
如何获取免费开源的自助建站系统源码?
如何快速搭建二级域名独立网站?
Android滚轮选择时间控件使用详解
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
如何快速生成可下载的建站源码工具?
5种Android数据存储方式汇总
微信公众帐号开发教程之图文消息全攻略
如何在Tomcat中配置并部署网站项目?
Laravel如何与Pusher实现实时通信?(WebSocket示例)
EditPlus中的正则表达式实战(5)
用v-html解决Vue.js渲染中html标签不被解析的问题
如何快速配置高效服务器建站软件?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
免费网站制作appp,免费制作app哪个平台好?
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
html如何与html链接_实现多个HTML页面互相链接【互相】
🚀拖拽式CMS建站能否实现高效与个性化并存?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
JavaScript实现Fly Bird小游戏
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
php json中文编码为null的解决办法
WordPress 子目录安装中正确处理脚本路径的完整指南
如何在Ubuntu系统下快速搭建WordPress个人网站?
Laravel如何使用Service Container和依赖注入?(代码示例)
昵图网官方站入口 昵图网素材图库官网入口
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
javascript读取文本节点方法小结
MySQL查询结果复制到新表的方法(更新、插入)
Laravel Session怎么存储_Laravel Session驱动配置详解
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
打开php文件提示内存不足_怎么调整php内存限制【解决方案】

