Docker 插件

这个插件可以为 docker 自动补全指令并设置别名。

要在你的 zsh 终端里使用这个插件,请在 .zshrc 文件的插件列表里添加 docker

plugins=(... docker)

下面是 docker/cli git 仓库里自动补全脚本的副本: https://github.com/docker/cli/blob/master/contrib/completion/zsh/_docker

设置

默认情况下,自动补全功能不支持使用连续选项,例如你不能补全 docker run -it <TAB>,因为 -i-t 在这里是连续使用的选项。

你可以通过在 .zshrc 文件中添加如下几行内容来 启用此功能,但请注意它的副作用:

这使得 Zsh 可以识别像 docker run -it ubuntu 这种命令。但同时,它也使得 Zsh 无法为 docker run -u<TAB> 补全为 docker run -uapprox。用户必须在尝试补全之前输入空格或等号。

因此,此行为在默认情况下是禁用的。要启用它,需要:

zstyle ':completion:*:*:docker:*' option-stacking yes
zstyle ':completion:*:*:docker-*:*' option-stacking yes

使用旧式补全

如果你发现当前的自动补全功能不太好用,你可以启用旧版的自动补全,具体设置如下。有关更多信息,请参阅 https://github.com/ohmyzsh/ohmyzsh/issues/11789。

zstyle ':omz:plugins:docker' legacy-completion yes

别名

别名指令描述
dbldocker build根据 Dockerfile 构建一个镜像
dcindocker container inspect查看一个或多个容器的详细信息
dclsdocker container ls列出所有正在运行的 Docker 容器
dclsadocker container ls -a列出所有正在运行和已停止的容器
dibdocker image build根据 Dockerfile 构建一个镜像(与 docker build 等效)
diidocker image inspect查看一个或多个镜像的详细信息
dilsdocker image ls列出 Docker 镜像
dipudocker image push将镜像或仓库推送到远程仓库
dirmdocker image rm删除一个或多个镜像
ditdocker image tag为特定镜像添加名称和标记
dlodocker container logs获取 Docker 容器的日志
dncdocker network create创建一个新的网络
dncndocker network connect将容器连接到网络
dndcndocker network disconnect将容器断开网络
dnidocker network inspect返回一个或多个网络的信息
dnlsdocker network ls列出引擎守护进程已知的包含多个主机的网络
dnrmdocker network rm删除一个或多个网络
dpodocker container port列出端口映射或容器的特定映射
dpudocker pull从注册中心拉取镜像或仓库
drdocker container run创建一个新容器并使用指定的命令运行
dritdocker container run -it创建一个新容器并在交互式模式下运行
drmdocker container rm删除指定的容器
drm!docker container rm -f强制删除正在运行的容器(使用 SIGKILL)
dstdocker container start启动一个或多个已停止的容器
drsdocker container restart重启一个或多个容器
dstadocker stop $(docker ps -q)停止所有正在运行的容器
dstpdocker container stop停止一个或多个正在运行的容器
dtopdocker top显示容器正在运行的进程
dvidocker volume inspect显示一个或多个卷的详细信息
dvlsdocker volume ls列出 docker 已知的全部卷
dvprunedocker volume prune清理不再使用的卷
dxcdocker container exec在正在运行的容器中运行指定命令
dxcitdocker container exec -it在正在运行的容器中以交互式 shell 运行指定命令