Hello! 欢迎来到小浪云!


怎样在docker容器中安装软件?apt-get和yum命令如何使用?


docker容器中安装软件需先确认系统类型并选择对应包管理工具。一、确认系统类型以选择apt-get(Debian/Ubuntu)、yumcentos/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容器中安装软件?apt-get和yum命令如何使用?

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

这样不仅效率高,还能避免缓存残留影响后续构建。


基本上就这些。用对命令,注意系统类型,再加上一点优化技巧,就能在容器里顺利安装你需要的软件了。

相关阅读