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

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

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

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

相关推荐
大盛供应链·卢生12 分钟前
哪些国产芯片可以替代进口芯片,哪些替代不了
fpga开发·容器
小小的木头人22 分钟前
Docker 环境下迁移 containerd 数据目录:从 `/var/lib/containerd` 到 `/data/containerd`
linux·docker
天远数科1 小时前
零信任架构实战:基于天远全能消金报告构建自动化信贷评估网关
运维·人工智能·架构·自动化
网硕互联的小客服3 小时前
各个版本的Linux系统如何修改远程端口ssh端口?
linux·运维·服务器·网络
Mr小林5 小时前
Docker 安装教程(在线 + 离线)
运维·docker·容器
java_logo6 小时前
Docker 部署 Milvus:轻松搭建高性能向量数据库平台
数据库·docker·私有化部署·milvus·向量数据库·rag·轩辕镜像
JudithHuang6 小时前
把本地服务暴露到公网
运维
yt004yt6 小时前
### 越华环保集团|绿岛 VOCs 集中治理,管网系统安全设计工程实战分享
大数据·运维
yt004yt7 小时前
越华环保集团|绿岛 VOCs 集中治理,管网系统安全设计工程实战分享
大数据·运维
晚安日记wanna7 小时前
压测 TPS 卡在 800CPU 只跑四成六步定位法
运维·面试·测试