docker指令整理

以下是 Docker 常用指令的归纳整理,涵盖镜像管理、容器操作、网络配置、数据卷等核心场景,方便快速查阅:


一、镜像管理

命令说明示例
docker pull拉取镜像docker pull nginx:latest
docker push推送镜像到仓库docker push my-registry.com/my-image:tag
docker build构建镜像docker build -t my-image:1.0 .
docker images查看本地镜像列表docker imagesdocker image ls
docker rmi删除镜像docker rmi my-image:1.0
docker tag给镜像打标签docker tag my-image:1.0 my-registry.com/my-image:latest
docker search搜索 Docker Hub 镜像docker search ubuntu

二、容器生命周期

命令说明示例
docker run创建并启动容器docker run -d --name my-nginx -p 80:80 nginx
docker start启动已停止的容器docker start my-nginx
docker stop停止运行中的容器docker stop my-nginx
docker restart重启容器docker restart my-nginx
docker rm删除容器docker rm my-nginx(需先停止)
docker rm -f my-nginx(强制删除运行中的容器)
docker exec进入运行中的容器执行命令docker exec -it my-nginx /bin/bash
docker pause暂停容器进程docker pause my-nginx
docker unpause恢复暂停的容器docker unpause my-nginx

三、容器监控与调试

命令说明示例
docker ps查看运行中的容器docker ps
docker ps -a(查看所有容器)
docker logs查看容器日志docker logs my-nginx
docker logs -f my-nginx(实时跟踪日志)
docker stats查看容器资源占用docker stats my-nginx
docker top查看容器内进程docker top my-nginx
docker inspect查看容器/镜像详细信息docker inspect my-nginx
docker cp在容器和主机间复制文件docker cp my-nginx:/app/config.conf ./

四、网络管理

命令说明示例
docker network ls查看所有网络docker network ls
docker network create创建自定义网络docker network create my-network
docker network connect将容器连接到网络docker network connect my-network my-nginx
docker network inspect查看网络详情docker network inspect my-network

五、数据卷管理

命令说明示例
docker volume create创建数据卷docker volume create my-volume
docker volume ls查看数据卷列表docker volume ls
docker volume rm删除数据卷docker volume rm my-volume
挂载数据卷到容器持久化存储数据docker run -v my-volume:/data my-image
挂载主机目录到容器绑定主机目录docker run -v /host/path:/container/path my-image

六、系统管理

命令说明示例
docker system df查看 Docker 磁盘使用情况docker system df
docker system prune清理无用数据(镜像、容器、网络、缓存)docker system prune -a(谨慎使用)
docker login登录镜像仓库docker login registry.example.com
docker logout退出镜像仓库docker logout registry.example.com

七、Docker Compose 常用命令

命令说明示例
docker-compose up启动服务docker-compose up -d(后台运行)
docker-compose down停止并删除服务docker-compose down
docker-compose logs查看服务日志docker-compose logs -f web
docker-compose ps查看服务状态docker-compose ps

常用场景速查

  1. 运行一个 MySQL 容器

    docker run -d --name mysql \
      -e MYSQL_ROOT_PASSWORD=123456 \
      -p 3306:3306 \
      mysql:8.0
    
  2. 构建并推送自定义镜像

    docker build -t my-app:1.0 .
    docker tag my-app:1.0 my-registry.com/my-app:latest
    docker push my-registry.com/my-app:latest
    
  3. 清理所有无用数据

    docker system prune -a --volumes
    

掌握这些命令后,可以覆盖 90% 的 Docker 日常操作需求。如需更高级功能(如 Swarm 集群管理),可进一步学习 Docker 官方文档。

<think>好的,我现在需要整理一下关于Docker exec指令的汇总信息。首先,我得回忆一下Docker的基本概念,特别是exec命令的作用。Docker exec用于在正在运行的容器中执行命令,这点我记得没错。接下来,我需要确定用户的需求,他们可能需要详细的参数说明和使用示例。 首先,我应该从基本语法开始,比如docker exec [选项] 容器名称 命令。然后列举常用的选项,比如-d、-i、-t,还有-e、-u这些可能常用的参数。每个参数需要解释清楚,比如-d是后台运行,-i和-t通常一起使用保持交互式会话。 然后,可能需要一些常见的使用示例,比如如何进入容器的bash,如何执行一次性命令,设置环境变量,以特定用户身份执行命令,后台运行命令,以及执行多个命令的情况。这些例子能帮助用户更好地理解不同参数的应用场景。 另外,需要注意用户提到的系统级指令,比如数学公式的格式,但在这个主题中可能不涉及,所以不需要处理这部分。不过要确保回答结构清晰,用中文表达,并且LaTeX语法正确,虽然这里可能用不上数学公式,但如果有任何需要格式化的地方要留意。 还要检查是否有遗漏的重要参数,比如--workdir指定工作目录,或者--env-file从文件读取环境变量。这些可能对高级用户有用,也应该包含进去。 接下来,考虑用户可能的疑问,比如如何连接到正在运行的容器,或者如何在容器内部执行脚本文件。这时候可能需要补充相关示例,比如使用docker exec -it容器名 /bin/sh执行脚本,或者直接运行一个命令并传递参数。 最后,需要总结一下exec的常见用途,比如调试容器、执行维护任务等,并提醒用户注意事项,比如容器必须处于运行状态才能使用exec。如果有容易出错的地方,比如忘记加-it导致无法交互,或者容器未运行导致命令失败,也应该提到。 现在要确保信息准确,可能需要快速查阅Docker官方文档或可靠的参考资料,确认各个参数的描述是否正确,特别是较新的参数是否有变化。例如,确认--user和-u是否都是指定用户,以及环境变量设置的两种方式(-e和--env-file)的具体用法。 整理过程中要避免技术性错误,比如正确区分exec和run的区别,exec是针对运行中的容器,而run是创建新容器。这点很重要,用户可能会混淆两者。 然后,组织内容的结构,先介绍命令语法,再分参数解释,接着是示例,最后是总结和注意事项。这样结构清晰,用户容易跟随。 在编写示例时,要使用常见的容器名称,比如nginx、ubuntu等,这样用户更容易关联实际情况。例如,docker exec -it my_nginx bash,这样的示例比较直观。 还需要注意用户可能的不同使用场景,比如在开发、测试或生产环境中使用exec的方式可能不同,是否需要后台执行或者交互式操作,这些在参数选择上会有区别,应该在示例中体现出来。 最后,通读整个回答,检查是否符合用户的要求,是否涵盖了exec的主要用法,是否有语法错误或表述不清的地方,确保信息准确、完整,并且易于理解。</think>以下是对 `docker exec` 指令的详细介绍及常用用法汇总: --- ### **基本作用** `docker exec` 用于在 **正在运行的容器** 中执行命令,常用于调试、维护或查看容器内部状态。 --- ### **基本语法** ```bash docker exec [选项] <容器名称或ID> <要执行的命令> ``` --- ### **常用选项汇总** | 选项 | 说明 | |------|------| | `-d` 或 `--detach` | 后台运行命令(不进入交互模式) | | `-i` 或 `--interactive` | 保持标准输入(STDIN)打开,允许交互操作 | | `-t` 或 `--tty` | 分配伪终端(通常与 `-i` 一起使用,如 `-it`) | | `-e` 或 `--env` | 设置环境变量(如 `-e VAR=value`) | | `-u` 或 `--user` | 以指定用户身份执行命令(如 `-u root`) | | `-w` 或 `--workdir` | 指定命令的工作目录 | | `--env-file` | 从文件读取环境变量 | --- ### **常见使用场景** #### 1. 进入容器的交互式终端 ```bash docker exec -it <容器名> /bin/bash # 进入容器的 bash shell docker exec -it <容器名> sh # 如果容器没有 bash,使用 sh ``` #### 2. 执行一次性命令 ```bash docker exec <容器名> ls /app # 查看容器内的 /app 目录内容 docker exec <容器名> cat /etc/os-release # 查看容器系统信息 ``` #### 3. 带环境变量执行命令 ```bash docker exec -e VAR1=value1 -e VAR2=value2 <容器名> env # 查看环境变量 ``` #### 4. 以特定用户身份执行命令 ```bash docker exec -u root <容器名> whoami # 以 root 用户执行命令 ``` #### 5. 后台执行命令(不阻塞终端) ```bash docker exec -d <容器名> touch /tmp/test.log # 后台创建文件 ``` #### 6. 执行多命令组合 ```bash docker exec <容器名> sh -c "cd /app && ls -l" ``` --- ### **注意事项** 1. **容器必须处于运行状态**:若容器已停止,需先通过 `docker start` 启动。 2. **命令路径问题**:确保容器内存在要执行的命令(如 `bash`、`sh` 等)。 3. **权限问题**:若提示权限不足,尝试添加 `-u root` 以管理员身份执行。 --- ### **典型应用场景** - **调试容器**:查看日志、检查配置文件。 - **临时操作**:清理缓存、重启内部服务。 - **数据导出**:从容器内导出数据库备份。 若有其他特定需求,可提供更多细节进一步探讨! 🐳
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值