温馨提示×

Docker命令在CentOS上有哪些不同

小樊
32
2025-11-27 17:24:00
栏目: 智能运维

Docker命令在 CentOS 上的差异与注意点

一 系统层面命令差异

  • 包管理与安装命令不同:在 CentOS 上安装 Docker 使用 yum/dnf 与官方仓库,例如:sudo yum install -y yum-utils device-mapper-persistent-data lvm2,随后 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo,再安装 sudo yum install -y docker-ce docker-ce-cli containerd.io;而在 Ubuntu 上使用的是 apt 系列命令。这是最常见的“命令不同”。
  • 服务管理命令相同:无论 CentOS 还是 Ubuntu,Docker 都作为 systemd 服务管理,常用命令为 sudo systemctl start docker、sudo systemctl enable docker、sudo systemctl status docker。
  • 容器内的包管理不同:基于 CentOS 的容器应使用 yum 安装软件;基于 Ubuntu 的容器使用 apt-get。这会影响你在 docker exec -it <容器> 之后执行的安装命令。

二 Docker 行为与命令使用上的差异

  • 前台进程与 -it 的必要性:官方 centos 镜像的默认命令是 /bin/bash。直接执行 docker run centos 会因为没有终端输入而立即退出,因此通常需要加上 -it 进入交互式终端;而 nginx 镜像的默认命令以前台方式运行(nginx -g ‘daemon off;’),不加 -it 也能保持运行。
  • 让 CentOS 容器后台保持运行:若希望容器在后台持续运行,可使用前台进程,例如 docker run -d centos tail -f /dev/null,随后再 docker exec -it bash 进入。
  • 进入容器的常用方式:优先使用 docker exec -it <容器> /bin/bash 进入已运行容器;也可用 docker attach,但 attach 会直接附着到容器的主进程,退出可能导致容器停止,使用上不及 exec 灵活。

三 版本与替代方案带来的差异

  • 版本与默认存储驱动:在 CentOS 7/8/9 的演进中,Docker 版本与默认存储驱动逐步升级,常见为 overlay2;同时 CentOS 9 原生更强调 Podman 生态,但 Docker 命令在 CLI 层面保持兼容。
  • 安装包拆分:现代 Docker 在 CentOS 上通常拆分为 docker-ce / docker-ce-cli / containerd.io 三个包,这是与一些更早期或非官方打包方式的主要差异点。
  • 系统差异导致的命令习惯:在 CentOS 主机上,新建的非 root 用户默认可能没有 sudo 权限,需要先在 /etc/sudoers 中授权;这与 Ubuntu 常见做法不同,会影响你执行 docker 命令时的权限获取方式。

四 常见命令对照与示例

场景 CentOS 主机 容器为 CentOS 容器为 Ubuntu
安装 Docker sudo yum install -y docker-ce docker-ce-cli containerd.io
启动/开机自启 sudo systemctl start docker;sudo systemctl enable docker
运行交互式 CentOS docker run -it centos /bin/bash
让 CentOS 容器后台常驻 docker run -d centos tail -f /dev/null
容器内安装软件 yum install -y <包> apt-get update && apt-get install -y <包>
进入运行中容器 docker exec -it /bin/bash docker exec -it /bin/bash

0