接前一篇文章:docker常用命令集(4)
本文内容参考:
【Docker基础】Docker容器管理:docker exec详解-CSDN博客
特此致谢!
8. docker exec
简介
docker exec命令用于在运行中的容器内执行一个新的命令。这对于调试、运行附加的进程或在容器内部进行管理操作非常有用。
docker exec是Docker容器管理中的核心命令之一,它允许用户在正在运行的容器内部执行命令。与docker run命令不同,docker exec不会创建新容器,而是附加到已存在的运行中容器。
基本语法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
常用选项
OPTIONS说明:
- -i, --interactive
保持标准输入(STDIN)打开,即使没有附加。
使用场景:
需要向容器内输入命令时。
用法示例:
docker exec -i my_container bash
- -t, --tty
分配一个伪终端(pseudo-TTY)。
使用场景:
需要交互式shell会话时。
用法示例:
docker exec -it my_container bash
-
-d, --detach
在后台运行命令。
使用场景:
执行不需要交互的后台任务。
用法示例:
docker exec -d my_container touch /tmp/file
- -e, --env
设置环境变量。
使用场景:
需要特定环境执行命令时。
用法示例:
docker exec -e VAR=value my_container env
- -u, --user
指定执行命令的用户。
使用场景:
需要特定权限执行命令时。
用法示例:
docker exec -u root my_container whoami
-
-w, --workdir
设置命令的工作目录。
使用场景:
需要在特定目录执行命令时。
用法示例:
docker exec -w /app my_container pwd
- --env-file
从文件中读取环境变量。
- --privileged
给这个命令额外的权限。
- --detach-keys
覆盖分离容器的键序列。
典型使用场景与示例
(1)进入容器交互式终端
docker exec -it container_name /bin/bash
参考上边的例子:
(2)在容器内执行单次命令
docker exec my_container ls /var/log
(3)多命令执行技巧
docker exec my_container bash -c "cd /app && ./script.sh"
(4)后台任务执行
docker exec -d my_container tail -f /var/log/app.log
参考上边的例子:
(5)查看容器环境变量
docker exec my_container env
(6)设置临时环境变量
docker exec -e DEBUG=true my_container ./start.sh
参考上边的例子:
(7)以非root用户执行
docker exec -u appuser my_container whoami
参考上边的例子:
(8)从容器内复制文件
docker exec my_container cat /etc/hosts > hosts.txt
(9)检查容器网络
docker exec my_container netstat -tuln
(10)查看容器进程
docker exec my_container ps aux
总结
docker exec是Docker容器管理的瑞士军刀,掌握它的各种用法可以极大提升容器运维效率,通过合理使用docker exec,开发者可以高效地调试、管理和维护运行中的容器,充分发挥Docker容器的优势。
更多内容请看下回。