Docker:docker exec命令简介

介绍

docker exec [OPTIONS] 容器名称 COMMAND [ARG...]

OPTIONS说明:

-d,以后台方式执行命令;

-e,设置环境变量

-i,交互模式

-t,设置TTY

-u,用户名或UID,例如myuser:myusergroup

通常COMMAND只能是一条语句,为了支持多个命令的执行,需要将多个命令连接起来交给Shell,docker exec命令的使用示例如下:

  1. sudo docker exec myContainer bash -c "cd /home/myuser/myproject && git fetch ssh://gerrit_server:29418/myparent/myproject ${GERRIT_REFSPEC} && git checkout FETCH_HEAD";

  2. sudo docker exec myContainer bash -c "cd /home/myuser/myproject;git fetch ssh://gerrit_server:29418/myparent/myproject ${GERRIT_REFSPEC};git checkout FETCH_HEAD";

注意:对于已经暂停或停止了的容器,无法执行docker exec命令,如下将抛出异常:

docker pause myContainer

docker exec myContainer ...

options 作用

-d 在后台运行命令

-i 即使没有附加也保持 STDIN 打开

-t 设置TTY

进入容器的 CLI 模式

-e 设置环境变量

-w 需要执行命令的目录

-u 指定访问容器的用户名

备注:其实还有几个 options,但是目前还没用到,要用的时候再写吧

举栗说明

执行 tomcat 容器的 startup.sh 脚本

docker exec -it tomcat7 startup.sh

进入容器的 CLI 模式(最常用)

docker exec -it tomcat7 bash

执行普通命令

docker exec -it tomcat7 pwd

指定工作目录执行命令

docker exec -it -w /usr tomcat7 pwd

以 root 用户身份进入容器(重点)

docker exec -it -uroot jenkins1 bash

**-uroot :**好处就是,在容器里敲命令就是 root 用户,畅通无阻,不存在权限不足的问题

相关推荐
小芳矶36 分钟前
Dify本地docker部署踩坑记录
python·docker·容器
70asunflower1 小时前
阿里云无影云电脑 Docker 使用完全指南
阿里云·docker·云计算
久绊A2 小时前
春节前云平台运维深度巡检-实操经验
运维·安全·容器·kubernetes·云平台
feasibility.3 小时前
在OpenCode使用skills搭建基于LLM的dify工作流
人工智能·低代码·docker·ollama·skills·opencode·智能体/工作流
!chen3 小时前
银河麒麟v11 kubeadm部署k8s v1.35.0高可用集群
云原生·容器·kubernetes
DB!!!4 小时前
自学Kubernestes(k8s)Day1 -- 核心基础概念
云原生·容器·kubernetes
lpruoyu4 小时前
【Docker进阶-02】Docker命令
docker·容器
FLGB5 小时前
Docker网段和服务器内部网段172.17 网段冲突导致网络不通
服务器·网络·docker
hwj运维之路7 小时前
超详细ubuntu22.04部署k8s1.28高可用(二)【结合ingress实现业务高可用】
运维·云原生·容器·kubernetes
骂我的人都死了7 小时前
DevOps架构部署
运维·ubuntu·docker·k8s·github·devops·python3.11