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
注意事项

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

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

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

相关推荐
桌面运维家2 小时前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?
运维·服务器·虚拟化·pve·vdi·云桌面
zhang133830890752 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻3 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
2601_949847755 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_639906945 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
今天重构了吗6 小时前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
KaiwuDB6 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
codezzzsleep6 小时前
学术汇报 PPT 自动化生成实战指南
运维·自动化·powerpoint
古法老登瞎折腾6 小时前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp
讯捷蓝达7 小时前
IBM V3500存储 双控故障、数据怎么恢复?
运维