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

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

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

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

相关推荐
无忧.芙桃16 分钟前
进程控制(上)
linux·运维·服务器
Bert.Cai27 分钟前
Linux rm命令详解
linux·运维
航Hang*29 分钟前
Windows Server 配置与管理——第8章:配置Web服务器
运维·服务器·windows·学习·vmware
刘~浪地球1 小时前
云原生与容器--Kubernetes 生产环境部署实战
云原生·容器·kubernetes
hweiyu001 小时前
Linux命令:suspend
linux·运维·服务器
code_li2 小时前
服务器与普通PC区别?
运维·服务器
小天互连即时通讯2 小时前
中小企业本地部署即时通讯:预算有限怎么把功能配齐
运维·服务器·网络
迈威通信2 小时前
轨交通信进化:从“连得上”到“靠得住” | 第十届智慧轨交大会观察
运维·网络·安全·自动化·信息与通信
小王要努力上岸2 小时前
VMware批量构建集群环境
运维·vmware
cyber_两只龙宝2 小时前
【Docker】Docker的资源限制
linux·运维·服务器·docker·云原生·容器