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.mzph.cn/pingmian/63067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

<工具 Claude Desktop> 配置 MCP server 连接本地 SQLite, 本机文件夹(目录) 网络驱动器 Windows 11 系统

也是在学习中... 起因: 抖音博客 艾克AI分享 他的视频 #143《Claude开源MCP彻底打破AI的信息孤岛》 提到: Claude开源的MCP太强了,视频后面是快速演示,反正看了好几遍也没弄明白。菜单都不一样,感觉用的不是同一家 Claude. 探…

(78)MPSK基带调制通信系统瑞利平坦衰落信道传输性能的MATLAB仿真

文章目录 前言一、MATLAB仿真1.仿真代码2.仿真结果 二、子函数与完整代码总结 前言 本文给出瑞利平坦衰落信道上的M-PSK通信系统性能仿真的MATLAB源代码与仿真结果。其中,调制方式M-PSK包括BPSK、QPSK、8-PSK、16-PSK、32-PSK等方式。 一、MATLAB仿真 1.仿真代码 …

go语言 Pool实现资源池管理数据库连接资源或其他常用需要共享的资源

go Pool Pool用于展示如何使用有缓冲的通道实现资源池,来管理可以在任意数量的goroutine之间共享及独立使用的资源。这种模式在需要共享一组静态资源的情况(如共享数据库连接或者内存缓冲区)下非 常有用。如果goroutine需要从池里得到这些资…

LeetCode70. 爬楼梯(2024冬季每日一题 24)

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2&#xf…

Android 系统之Init进程分析

1、Init进程流程 2、Init细节逻辑 2.1 Init触发shutdown init进程触发系统重启是一个很合理的逻辑,为什么合理? init进程是android世界的一切基石,如果android世界的某些服务或者进程出现异常,那么会导致整个系统无法正常使用…

用micropython 操作stm32f4单片机的定时器实现蜂鸣器驱动

import pyb import time # 初始化引脚和定时器通道作为PWM输出 # 注意:这里我们假设您使用的是支持PWM的引脚和定时器 # 在不同的MicroPython板上,支持的引脚和定时器可能不同 # 请查阅您的板的文档以确认正确的引脚和定时器 buzzer_pin pyb.Pin(PD15,…

长沙市的科技查新单位

1、中南大学图书馆科技查新站: 中南大学图书馆科技查新站成立于2003年12月,中南大学图书馆科技查新站作为教育部首批批准的科技查新工作站之一,具备了在全国范围内开展科技查新工作的专业资质。 2、湖南大学科技查新站: 湖南大学…

java基础语法光速入门

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理Java的基础语法部分 适合有编程基础的人快点掌握语法使用 没学过一两门语言的话。。还是不建议看了 极致的浓缩没有一点解释 注释 单行注释 // 多行注释 /**/ 数据类型 布尔型:true false 整型:int,lon…

【redis】集群详解

redis集群 一、集群的概念二、数据分片算法2.1哈希求余算法2.2一致性哈希算法2.3哈希槽分区算法 三、集群的搭建3.1配置docker-compose.yml文件3.2配置generate.sh脚本文件3.3构建redis集群3.4简单测试redis集群 四、故障处理流程4.1故障判定4.2故障转移 五、集群扩容 一、集群…

Linux | Linux的开机启动流程

对于linux系统的初学者来说,理解并掌握linux系统启动流程能够使你够深入的理解linux系统,还可以通过系统的启动过程来分析问题解决问题。 Linux开机启动的流程如下图 power on 开机 post自检(检查一部分大的硬件) BIOS&#xf…

Scala的模式匹配(5)

package hfd.test32 //匹配 变量的类型 object Test34_4 {def main(args: Array[String]): Unit {val i1val j:Double1.2val b:Booleanfalseval x:Anybx match {case _:Int>println(s"当前是Int")case _:Double>println(s"当前是Double")case a:Boo…

TiDB如何保证数据一致性

1. 分布式事务协议 TiDB 采用了类似 Google Percolator 的分布式事务协议来处理分布式事务。这个协议基于两阶段提交(2PC)的思想,但进行了优化和改进,以适应分布式环境的特殊需求。在 TiDB 中,当一个事务需要跨多个节…

【Maven系列】深入解析 Maven 常用命令

前言 在当今的软件开发过程中,项目管理是至关重要的一环。项目管理包括了项目构建、依赖管理以及发布部署等诸多方面。而在Java生态系统中,Maven已经成为了最受欢迎的项目管理工具之一。Maven 是一套用于构建、依赖管理和项目管理的工具,主要…

DBA面试题-1

面临失业,整理一下面试题,找下家继续搬砖 主要参考:https://www.csdn.net/?spm1001.2101.3001.4476 略有修改 一、mysql有哪些数据类型 1, 整形 tinyint,smallint,medumint,int,bigint;分别占用1字节、2字节、3字节…

【Rust WebAssembly 入门实操遇到的问题】

Rust WebAssembly 入门实操遇到的问题 什么是WebAssembly跟着教程走wasm-pack build error总结 什么是WebAssembly WebAssembly(简称Wasm)是一种基于堆栈的虚拟机的二进制指令 格式。Wasm 被设计为编程语言的可移植编译目标,支持在 Web 上部…

数据挖掘之数据预处理

​​​​​​​ 引言 数据挖掘是从大量数据中提取有用信息和知识的过程。在这个过程中,数据预处理是不可或缺的关键步骤。数据预处理旨在清理和转换数据,以提高数据质量,从而为后续的数据挖掘任务奠定坚实的基础。由于现实世界中的数据通常…

21个Python脚本自动执行日常任务(1)

引言 作为编程领域摸爬滚打超过十年的老手,我深刻体会到,自动化那些重复性工作能大大节省我们的时间和精力。 Python以其简洁的语法和功能强大的库支持,成为了编写自动化脚本的首选语言。无论你是专业的程序员,还是希望简化日常工…

C++ 游戏开发:开启游戏世界的编程之旅(2)

三、游戏输入处理 (一)键盘输入处理 在游戏中,玩家通过键盘输入来控制角色的行动。我们需要在游戏循环中不断检测键盘事件,并根据不同的按键按下或松开状态来执行相应的操作。例如,在 SDL 中,可以这样处理…

重生归来之正确使用gcc.md

environment gcc --version g --version gdb --versionsudo apt update sudo apt install gcc g build-essential gdb cmake 项目目录结构 MyProject/ │ ├── CMakeLists.txt # CMake 配置文件 ├── src/ │ └── main.cpp # 源代码 ├── build/ …

探索3D世界:使用 lib3ds 读取和解析 3DS 文件

在3D图形开发中,读取和解析3DS文件是创建和渲染3D场景的第一步。3DS(3D Studio)文件格式是一种广泛使用的3D模型文件格式,它包含了多种类型的数据,用于描述3D场景中的物体、材质、相机、灯光和动画等。lib3ds 是一个开…