当前位置: 首页 > news >正文

docker及docker exec命令学习笔记

docker exec 是一个常用的 Docker 命令,允许你在已经运行的容器中执行命令或启动新的进程。以下是详细介绍和常见用法:

基本语法

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

参数详解

1.	CONTAINER

指定目标容器的名字或容器 ID。可以通过以下命令查看所有运行中的容器:

docker ps
2.	COMMAND

要在容器中执行的命令。例如:
• /bin/bash:进入容器的 bash shell。
• ls:列出容器内的文件。
3. [ARG…]
传递给命令的额外参数。例如:

docker exec my_container ls -l /home
4.	常用选项 (OPTIONS)
•	-i

保持标准输入打开(interactive)。常用于需要交互的命令。
• -t
分配一个伪终端(pseudo-TTY)。通常与 -i 配合使用来提供一个交互式 shell。

docker exec -it my_container /bin/bash
•	--detach 或 -d

后台运行命令,不会进入容器。

docker exec -d my_container touch /tmp/testfile
•	--env 或 -e

为执行的命令设置环境变量。

docker exec -e ENV_VAR_NAME=value my_container echo $ENV_VAR_NAME
•	--user 或 -u

指定以哪个用户身份运行命令。

docker exec -u root my_container apt-get update
•	--privileged

提供扩展的权限,允许执行更多系统级命令。

docker exec --privileged my_container mount

常见用法

  1. 进入容器的交互式 shell
docker exec -it my_container /bin/bash

或者对于某些容器(如 Alpine Linux),需要使用 sh:

docker exec -it my_container /bin/sh
  1. 在容器中运行单次命令

列出容器内的 /tmp 目录:

docker exec my_container ls /tmp
  1. 后台运行命令
docker exec -d my_container touch /tmp/background_test
  1. 为命令设置环境变量
docker exec -e ENV_VAR="Hello, Docker!" my_container echo $ENV_VAR
  1. 使用特定用户运行命令
docker exec -u root my_container whoami

注意事项

1.	docker exec 仅能对运行中的容器操作

如果容器停止了,可以使用 docker start 启动它。
2. 权限问题
有时,默认用户可能没有权限执行某些操作,可以通过 -u root 指定使用 root 用户。
3. 持久化问题
使用 docker exec 修改的内容(如文件)仅在容器运行时有效。如果容器重启或被删除,修改将丢失。需要持久化的内容,应写入 Docker 镜像或挂载卷。

docker exec 是一个功能强大的工具,特别适合在开发、调试或临时维护容器时使用。如果你有特定需求或疑问,可以进一步咨询!

http://www.lryc.cn/news/497437.html

相关文章:

  • linux环境宝塔服务部署安装及介绍
  • 充分统计量(Sufficient Statistic)概念与应用: 中英双语
  • 基于Matlab计算机视觉的车道线识别与前车检测系统研究
  • 模糊测试中常见的10种变异mutation策略
  • opencv-android编译遇到的相关问题处理
  • 把 py脚本生成windows 可执行的文件
  • 云计算的发展历史与未来展望
  • 基于飞腾S2500处理器的全国产加固服务器
  • gitlab-cicd部署安装与具体操作
  • 2022高等代数上【南昌大学】
  • 文本生成类(机器翻译)系统评估
  • 11.7【miniob】【debug】
  • OSHI 介绍与使用
  • Hadoop生态圈框架部署(八)- Hadoop高可用(HA)集群部署
  • 【RocketMQ】Name Server 无状态特点及如何让 Broker Consumer Producer 感知新节点
  • 蓝牙定位的MATLAB程序,四个锚点、三维空间
  • 机器学习--绪论
  • Unity 设计模式-命令模式(Command Pattern)详解
  • 线程信号量 Linux环境 C语言实现
  • karmada-descheduler
  • 【热门主题】000075 探索嵌入式硬件设计的奥秘
  • Android okhttp请求
  • 嵌入式蓝桥杯学习4 lcd移植
  • 电子应用设计方案-38:智能语音系统方案设计
  • 渗透测试:网络安全的深度探索
  • 基于SpringBoot的“小区物业管理系统”的设计与实现(源码+数据库+文档+PPT)
  • 调试android 指纹遇到的坑
  • 剑指offer(专项突破)---字符串
  • 【springboot】 多数据源实现
  • 多模态COGMEN详解