在这里插入图片描述

前言

我们之前介绍了docker 容器管理的相关命令以及docker run命令的使用,本篇文章我们继续学习一个非常重要的容器管理命令docker exec命令,docker exec命令是一个非常实用的工具。它允许你在运行中的 Docker 容器内部执行命令。本文将介绍 docker exec·命令的基本用法以及一些常见的选项,帮助你更好地理解和利用 Docker。

docker exec

docker exec命令用于在运行中的Docker容器中执行命令。它允许我们与容器内的应用程序进行交互,并在容器中运行命令行工具、脚本或其他操作。通过使用exec命令,我们可以在不需要进入容器的情况下直接与容器内的环境进行交互。

注:对于已经暂停或停止了的容器,无法执行docker exec命令

docker exec语法

Docker exec命令的基本语法如下:

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

命令详解

  • OPTIONS:可选参数,用于设置执行选项。
  • CONTAINER:容器名称或ID,指定要执行命令的容器
  • COMMAND:要在容器内执行的命令
  • ARG:命令的参数,可以有多个

options常用参数

  • -d,在后台运行命令
  • -i,即使没有附加也保持 STDIN 打开,和 -t 配合
  • -t,进入容器的 CLI 模式
  • -e,设置环境变量
  • --env-file,读入环境变量文件
  • -w,需要执行命令的目录
  • -u,指定访问容器的用户名

注:更多参数可以运行docker exec --help查看

示例用法

  1. 进入运行中的容器
docker exec -it my_container /bin/bash

这会在名为 my_container 的容器内部启动一个交互式的 bash shell。我们可以在容器内部执行任何命令或操作。比如查看文件列表,或者执行指定脚本,如下:

#查看文件列表
docker exec tomcat_muller ls -l

#  执行容器内的指定脚本
docker exec -it tomcat_muller start.sh
  1. 在后台容器内运行命令
docker exec -d my_container /usr/local/bin/run-background-task

这会在名为 my_container 的容器内部以后台模式运行 run-background-task 脚本或命令。

注1:容器必须在运行状态:docker exec·只能对运行中的容器执行命令。如果容器已经停止,你需要先启动容器再执行 docker exec

注2:权限限制:docker exec 默认以容器内部的 root 用户权限执行命令。你可以使用 --user 选项指定其他用户。

总结

docker exec 命令是一个非常有用的 Docker 命令,可用于在运行中的容器内部执行命令和操作。通过合理地使用选项,你可以与容器交互并执行各种任务,如调试、运行特定命令等。希望本文的介绍能够帮助你更好地理解和使用 docker exec 命令。


霍格沃兹测试学院
44 声望27 粉丝