docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker命令起别名

给常用Docker命令起别名的方法详解

作者:李少兄

在日常使用Docker的过程中,你是否经常重复输入docker ps、docker images、docker exec -it container_name /bin/bash这类命令,虽然这些命令清晰明确,但频繁敲打不仅费时,还容易因拼写错误导致操作失败所以本文给大家介绍了如何给常用Docker命令起别名

前言

在日常使用 Docker 的过程中,你是否经常重复输入 docker psdocker imagesdocker exec -it container_name /bin/bash 这类命令?虽然这些命令清晰明确,但频繁敲打不仅费时,还容易因拼写错误导致操作失败。其实,Linux 提供了一种非常简单又高效的方式——Shell 别名(alias),可以让你用几个字母代替一长串命令。

一、前置知识:你需要了解的基本概念

在动手之前,我们先解释几个你一定会遇到的核心术语。这些不是“拓展”,而是理解后续操作所必需的基础

1.1 什么是 Shell?

Shell 是你与 Linux 系统交互的命令行界面。当你打开终端并看到 $# 提示符时,你就处于一个 Shell 环境中。最常见的 Shell 是 Bash(Bourne Again Shell),CentOS 默认使用它。

你输入的每一条命令(如 lscddocker)都是由 Shell 解释并执行的。

1.2 什么是别名(alias)?

别名(alias) 是 Shell 提供的一种机制,允许你为一个命令或命令序列定义一个简短的名称。

例如:

alias ll='ls -l'

执行后,在当前 Shell 会话中,输入 ll 就等同于执行 ls -l

别名只在当前 Shell 会话中有效。要让它永久生效,必须写入配置文件(如 .bashrc)。

1.3 什么是.bashrc文件?

.bashrc 是 Bash Shell 的个人配置文件,位于每个用户的家目录下(如 /root/.bashrc/home/yourname/.bashrc)。

它的作用是:

每次你打开一个新的非登录终端(如图形界面中的终端窗口),Bash 都会自动读取并执行 .bashrc 中的内容。

注意:以 . 开头的文件在 Linux 中是“隐藏文件”,需要用 ls -a 才能看到。

1.4 什么是~符号?

~(波浪号)是 Shell 中表示当前用户家目录的快捷符号。

用户类型~ 的实际路径
root/root
普通用户(如 centos/home/centos

因此,~/.bashrc 对所有人都是正确的写法,Shell 会自动将其展开为实际路径。

二、关键工具详解:nano、vi、sudo

这些不是“可选知识”,而是你在操作中必然会用到的工具。我们逐一详解。

2.1 nano 是什么?怎么用?

nano 是一个简单易用的文本编辑器,专为初学者设计。它的界面直观,底部有实时操作提示,无需记忆复杂命令。

安装 nano(如果系统未预装)

CentOS 默认可能没有安装 nano,你可以用以下命令安装:

# CentOS 7
yum install -y nano

# CentOS 8 / Stream / RHEL 9+
dnf install -y nano

如果你不是 root 用户,可能需要加 sudo:

sudo yum install -y nano

使用 nano 编辑文件

打开文件:

nano ~/.bashrc

你会看到类似这样的界面:

# .bashrc

# User specific aliases and functions
...

^G Get Help    ^O Write Out   ^W Where Is    ^K Cut Text    ^T Execute Command
^X Exit        ^R Read File   ^\ Replace     ^U Uncut Text  ^C Cur Pos

基本操作

操作快捷键说明
保存文件Ctrl + O“Write Out”(输出/保存)
退出编辑器Ctrl + X“eXit”
搜索文本Ctrl + W“Where Is”
复制一行Alt + 6先用方向键选中行
粘贴Ctrl + U“Uncut”(粘贴剪贴板内容)

如何退出 nano?(重点!)

这是新手最常问的问题。分两种情况:

情况 1:你修改了内容,想保存并退出

  1. Ctrl + O
  2. 直接按回车(确认文件名)
  3. Ctrl + X

情况 2:你没改内容,或不想保存,直接退出

记住:Ctrl + O = 保存,Ctrl + X = 退出

2.2 vi 是什么?怎么用?

vi(或 vim)是 Linux 系统中最经典的文本编辑器,几乎所有发行版都预装。它功能强大,但需要理解其“模式”概念。

打开文件

vi ~/.bashrc

进入后,你会看到文件内容,但此时处于 “命令模式”,不能直接输入文字。

vi 的三种模式

模式作用如何进入
命令模式移动光标、删除、复制等默认状态,或按 Esc
插入模式输入/编辑文本iao
末行模式保存、退出、搜索等:

基本操作流程

  1. 进入插入模式:按 i
  2. 编辑文本:像普通编辑器一样输入
  3. 退出插入模式:按 Esc
  4. 保存并退出:输入 :wq 然后回车
  5. 不保存退出:输入 :q! 然后回车

常用命令速查

操作命令说明
跳到文件末尾G(大写)在命令模式下按 Shift + g
新起一行o在当前行下方插入新行并进入插入模式
删除当前行dd在命令模式下按 d 两次
撤销u在命令模式下按 u

提示:如果你卡在 vi 里出不来,连续按几次 Esc,然后输入 :q! 回车即可强制退出。

2.3 sudo 是什么?为什么需要它?

sudo = Super User DO(以超级用户身份执行)

Linux 系统中,只有 root 用户(超级用户) 拥有最高权限,可以修改系统文件、安装软件、管理服务等。普通用户权限受限,以防止误操作破坏系统。

但有时普通用户也需要临时执行特权命令。这时就用 sudo

示例

# 普通用户安装软件(需要 root 权限)
sudo yum install nginx

# 普通用户查看系统日志
sudo tail /var/log/messages

执行 sudo 时,系统会要求你输入当前用户的密码(不是 root 密码),验证通过后临时获得 root 权限。

为什么 Docker 需要 sudo?

Docker 守护进程(dockerd)以 root 身份运行,并通过 Unix socket /var/run/docker.sock 提供 API。默认情况下,只有 root 或 docker 用户组的成员才能访问该 socket。

因此,普通用户运行 docker ps 会报错:

Got permission denied while trying to connect to the Docker daemon socket...

解决方法有两种:

  1. 每次加 sudosudo docker ps
  2. 将用户加入 docker(推荐):
sudo usermod -aG docker $USER

然后退出终端并重新登录,之后 docker 命令无需 sudo

安全提醒:加入 docker 组等同于赋予用户 root 权限(因为可以挂载任意目录、启动特权容器),请仅在开发或可信环境中使用。

三、核心步骤:配置 Docker 别名(手把手)

现在,我们进入实际操作。整个过程分为五步,每一步都详细说明。

第一步:打开.bashrc文件

使用你选择的编辑器:

使用 nano(推荐新手)

nano ~/.bashrc

使用 vi(系统管理员常用)

vi ~/.bashrc

重要:始终使用 ~/.bashrc,不要手动写 /root/.bashrc 或 /home/xxx/.bashrc。

第二步:添加 Docker 别名

滚动到文件末尾(nano 按 ↓,vi 按 G),然后添加以下内容:

# =============== Docker 常用别名 ===============
# 核心简化
alias d='docker'

# 容器管理
alias dps='docker ps'               # 查看运行中的容器
alias dpsa='docker ps -a'           # 查看所有容器
alias di='docker images'            # 查看镜像列表

# 容器操作
alias dstop='docker stop'           # 停止容器
alias dstart='docker start'         # 启动容器
alias drm='docker rm'               # 删除容器

# 进入容器
alias dexec='docker exec -it'       # 用法:dexec 容器名

# 日志
alias dlogs='docker logs'           # 查看日志
alias dlogsf='docker logs -f'       # 实时跟踪日志

# 构建
alias dbuild='docker build -t'      # 用法:dbuild 镜像名 .

# Docker Compose
alias dc='docker compose'
# ==============================================

注意:alias name='command' 中,等号 = 两边不能有空格

第三步:保存并退出编辑器

如果用 nano:

  1. Ctrl + O → 回车 → Ctrl + X

如果用 vi:

  1. Esc
  2. 输入 :wq
  3. 按回车

第四步:加载配置

运行以下命令让别名生效:

source ~/.bashrc

不要运行 ~/.bashrc!
如果你运行 ~/.bashrc,会得到:

-bash: /root/.bashrc: Permission denied

原因:Shell 试图“执行”这个文件,但它是配置文件,不是程序。必须用 source 命令来“加载”它。

第五步:验证别名

dps    # 应该等同于 docker ps
di     # 应该等同于 docker images

如果输出正常,恭喜你!配置成功!

四、常见问题深度解析(不省略任何细节)

4.1 问题:我输入~/.bashrc为什么报 Permission denied?

根本原因:你试图“执行”一个不可执行的文件。

正确做法

4.2 问题:我是 root 用户,还需要 sudo 吗?

不需要。root 用户拥有所有权限,可以直接运行 docker 命令,无需 sudo

因此,你的别名应写为:

alias dps='docker ps'   # 不要写成 'sudo docker ps'

4.3 问题:普通用户如何配置?

完全一样!只需确保:

  1. 你编辑的是自己的 ~/.bashrc(即 /home/你的用户名/.bashrc
  2. 你已将自己加入 docker 组(否则 docker 命令会报权限错误)

4.4 问题:别名不生效?

可能原因 1:未加载配置

可能原因 2:语法错误

可能原因 3:配置文件未被加载

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

4.5 问题:能否让别名支持参数?

别名本身不支持参数。但你可以用 Shell 函数

# 添加到 ~/.bashrc
dex() {
    docker exec -it "$1" /bin/bash
}

使用:

dex my_container   # 进入名为 my_container 的容器

记住核心三步

  1. nano ~/.bashrc(添加别名)
  2. Ctrl+O → 回车 → Ctrl+X(保存退出)
  3. source ~/.bashrc(加载配置)

以上就是给常用Docker命令起别名的方法详解的详细内容,更多关于Docker命令起别名的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文