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

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

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

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

相关推荐
IT 小阿姨(数据库)10 分钟前
K8s v1.24.17 完整搭建文档(CentOS7 + containerd1.6.33 + Calico)
java·容器·kubernetes
Dachui_112236 分钟前
企业内网大模型公网访问方案:Ollama + OpenWebUI + ZeroNews 实战部署记录
运维·服务器·安全·远程工作·内网穿透
2401_890603401 小时前
Linux 进程控制
linux·运维·服务器
雨辰AI1 小时前
openGauss 生产运维避坑指南|适配信创项目改造核心难点
java·运维·后端
小波波啊1 小时前
nginx 转发超时故障排查实录
运维·nginx
2401_865382501 小时前
信息化建设项目申报建设费时运维费能否一起报送?
运维
九硕智慧建筑一体化厂家1 小时前
大型建筑集群智慧管控升级!IBMS系统实现多系统一体化融合管理
运维·人工智能·笔记·智慧城市
HAHAXX82 小时前
低代码 & 无代码 RPA 项目实施:对接大模型接口的部署与运维要点
运维·低代码·rpa
ITyunwei09872 小时前
从 ITIL 视角量化-第三集:工单系统如何成为 ITSM 治理抓手?架构+量化
运维·网络·企业微信
paopao_djshddhdj2 小时前
钉钉培训系统功能与收费详解:企业数字化培训的优选方案
运维·钉钉