docker exec 命令详解

docker exec 命令详解

核心概念

让宿主机在一个正在运行的容器内部执行指定命令。命令格式如下:

复制代码
docker exec [选项] 容器名或容器ID 命令 [参数]
基本规则

容器必须处于运行状态(通过 docker ps 检查)

命令在容器内执行,但命令本身在宿主机输入。路径指向容器内部路径而非宿主机路径

每次 docker exec 默认仅执行单条命令,复杂逻辑需封装

常见选项组合

-i 保持标准输入开启(用于管道场景)

bash 复制代码
docker exec -i 容器名 tar -xf - < 输入流

-it 分配伪终端(交互式操作)

bash 复制代码
docker exec -it 容器名 bash

-u 指定执行用户

复制代码
docker exec -u root 容器名 命令
典型使用场景

执行简单命令

bash 复制代码
docker exec 容器名 ls /path

进入容器交互终端

bash 复制代码
docker exec -it 容器名 bash/sh

执行复合命令

bash 复制代码
docker exec 容器名 bash -lc 'cd /path && ls'

跨容器管道操作

bash 复制代码
docker exec 容器A tar -cf - . | docker exec -i 容器B tar -xf -
常见问题处理

管道作用域混淆时,显式指定执行环境

bash 复制代码
docker exec 容器名 bash -lc '命令 | 过滤'

目录切换需通过shell封装

bash 复制代码
docker exec 容器名 bash -lc 'cd /path && 命令'

权限不足时切换用户

bash 复制代码
docker exec -u root 容器名 命令

精简镜像使用sh替代bash

bash 复制代码
docker exec -it 容器名 sh
注意事项

重定向符号在宿主机环境解析

环境变量继承受容器配置影响

命令路径需考虑容器内文件系统布局

相关推荐
BullSmall15 分钟前
Anolis OS 8.10 Docker 部署 PostgreSQL 15 完整实操
docker·postgresql·容器
奈斯先生Vector32 分钟前
告别工具碎片化:基于 Nano Banana 全模态 AI 聚合架构搭建“文本-图像-视频”自动化协同生产线
运维·数据库·人工智能·架构·自动化·aigc·音视频
DLYSB_2 小时前
AIOps 大模型实战:基于 LangChain 运维 Agent 的根因诊断与现场声光播报闭环
运维·langchain·报警灯
一可米4 小时前
gitHub.com Actions自动化发布
运维·自动化·github
智塑未来4 小时前
证券公司智能运维平台哪个品牌做得好?擎创科技智能运维 2.0 适配券商全场景
运维·科技·区块链
java_logo4 小时前
Docker 部署 CUPS Web:浏览器即可管理打印机与打印任务
docker·容器·打印机·轩辕镜像·cups web·cups web 镜像部署·cups web 部署教程
酷可达拉斯5 小时前
自动化运维-ansible配置文件与主机清单
linux·运维·自动化·ansible
来者皆善6 小时前
ZYNQ linux上使用 USB CDC ACM
linux·运维·服务器
4/5$全真龙门6 小时前
廉价易行的内网穿透
运维
数据知道6 小时前
容器安全入门:Docker 逃逸原理与 5 个经典 CVE
安全·网络安全·docker·容器