docker
  • docker教程
  • advanced
    • Docker 构建缓存指南
    • Docker分配CPU资源
    • Dockerfile+Maven插件构建SpringBoot镜像(推荐)
    • Dockerfile构建SpringBoot镜像
    • idea配置docker
    • Docker Jenkins进阶配置
    • 基于jenkins容器部署SpringBoot应用构建镜像(基于Dockerfile+Maven插件构建)
    • Maven插件构建SpringBoot镜像(二)
    • 基于Maven插件为SpringBoot应用构建镜像并推送到远程_私人仓库(Docker Hub)
    • Maven插件构建SpringBoot镜像(一)
    • Docker MongoDB进阶配置
    • Docker 多阶段构建指南
    • Docker MySql进阶配置
    • Docker network进阶配置
    • Docker Nginx进阶配置
    • Docker空(none)镜像处理
    • Docker pip install --no-cache-dir
    • Docker redis进阶配置
  • concepts
    • docker、docker engine和docker desktop区别
    • 架构
    • 什么是容器?
    • 什么是镜像?
    • 什么是Docker?
    • 什么是仓库?
  • docker-compose
    • Docker Compose 锚点的用法
    • docker-compose 编排多服务
    • docker-compose 常用命令
    • docker-compose 部署jenkins
    • docker-compose安装mySql
    • docker-compose网络配置
    • docker-compose安装nginx
    • docker-compose安装redis
    • docker Compose 示例1
  • docker-hub
    • Docker Hub账号服务说明
  • install
    • CentOS Docker 安装
    • Debian Docker 安装
    • Docker 安装 Apache
    • Docker 安装 CentOS
    • Docker 安装 Elasticsearch
    • Docker 安装 GitLab
    • Docker 安装 Jenkins
    • Docker 安装 MongoDB
    • Docker 安装 MySQL
    • Docker 安装 Nginx
    • Docker 安装 Node.js
    • Docker 安装 PHP
    • Docker 安装 Portainer
    • Docker Python 官方镜像使用说明(TAG说明)
    • Docker 安装 Python
    • Docker 安装 Redis
    • Docker 安装 Tomcat
    • Docker 安装 Ubuntu
    • Docker 安装 Wordpress
    • Docker 国内镜像加速
    • MacOS Docker 安装
    • Ubuntu Docker 安装
    • Windows Docker 安装
  • manual
    • Docker attach 命令
    • Docker build 命令
    • Docker 清理命令
    • Docker命令大全
    • Docker commit 命令
    • docker-compose-run-command
    • Docker cp 命令
    • Docker create 命令
    • Docker diff 命令
    • Docker rm 命令
    • Docker exec 命令
    • Docker export 命令
    • Docker history 命令
    • Docker images 命令
    • Docker import 命令
    • Docker info 命令
    • Docker inspect 命令
    • Docker kill 命令
    • Docker load 命令
    • Docker login/logout 命令
    • Docker logs 命令
    • Docker network 命令
    • Docker pause/unpause 命令
    • Docker port 命令
    • Docker 常见问题
    • Docker ps 命令
    • Docker pull 命令
    • Docker push 命令
    • Docker rename 命令
    • docker-resources
    • Docker rm 命令
    • Docker rm 命令
    • Docker run 命令
    • Docker save 命令
    • Docker search 命令
    • Docker start/stop/restart 命令
    • Docker stats 命令
    • Docker tag 命令
    • Docker top 命令
    • Docker version 命令
    • Docker version 命令
    • Docker wait 命令
    • diff
      • Docker Compose 和 docker-compose 区别
      • Docker import、export 与 save、load 命令 区别
  • usage
    • Docker docker-compose 使用
    • Docker 容器连接
    • Docker 容器使用
    • Docker Dockerfile Ptyhon实战配置-1
    • Docker Dockerfile Ptyhon实战配置之多阶段构建-2
    • Docker Dockerfile
    • Docker 镜像使用
    • Docker Machine
    • Docker 仓库管理
    • Swarm集群管理
  • assets
    • mysql
      • my.cnf
Powered by GitBook
On this page
  • 语法
  • 常用参数
  • 实例
  • 使用场景
  • 总结
  • attach与 exec -it 区别

Was this helpful?

  1. manual

Docker exec 命令

PreviousDocker rm 命令NextDocker export 命令

Last updated 4 months ago

Was this helpful?

docker exec 命令用于在运行中的容器内执行一个新的命令。这对于调试、运行附加的进程或在容器内部进行管理操作非常有用。

语法

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

常用参数

  • -d, --detach: 在后台运行命令。

  • --detach-keys: 覆盖分离容器的键序列。

  • -e, --env: 设置环境变量。

  • --env-file: 从文件中读取环境变量。

  • -i, --interactive: 保持标准输入打开。

  • --privileged: 给这个命令额外的权限。

  • --user, -u: 以指定用户的身份运行命令。

  • --workdir, -w: 指定命令的工作目录。

  • -t, --tty: 分配一个伪终端。

实例

在容器内运行命令:

docker exec my_container ls /app

在运行中的 my_container 容器内执行 ls /app 命令,列出 /app 目录的内容。

以交互模式运行命令:

docker exec -it my_container /bin/bash

在运行中的 my_container 容器内启动一个交互式的 Bash shell。-i 保持标准输入打开,-t 分配一个伪终端。

在后台运行命令:

docker exec -d my_container touch /app/newfile.txt

在运行中的 my_container 容器内后台执行 touch /app/newfile.txt 命令,创建一个新文件。

设置环境变量:

docker exec -e MY_ENV_VAR=my_value my_container env

在运行中的 my_container 容器内执行 env 命令,并设置环境变量 MY_ENV_VAR 的值为 my_value。

以指定用户身份运行命令:

docker exec -u user123 my_container whoami

在运行中的 my_container 容器内以 user123 用户身份执行 whoami 命令。

指定工作目录:

docker exec -w /app my_container pwd

在运行中的 my_container 容器内以 /app 目录为工作目录执行 pwd 命令。

使用场景

  • 调试容器: 进入容器内部进行调试和排查问题。

  • 管理任务: 在容器内运行附加的管理任务或维护操作。

  • 监控和检查: 在容器内执行监控和检查命令,获取运行状态和日志。

总结

docker exec 命令是 Docker 中非常强大的工具,允许用户在运行中的容器内执行额外的命令。这对于调试、管理和维护容器非常有用,能够帮助用户更灵活地控制和操作容器内部的环境。

attach与 exec -it 区别

功能点

docker attach

docker exec -it

目标

连接到容器的主进程

在容器内启动一个新的进程

交互模式

使用主进程的 STDIN、STDOUT 和 STDERR

可启动交互式终端(如 bash/sh)

对主进程的影响

可能干扰主进程

不会干扰主进程

新进程支持

不支持

支持

适用场景

查看容器启动日志,直接交互主进程

调试、执行命令或管理容器环境

Docker命令大全