赞
踩
- docker exec [OPTIONS] 容器名称 COMMAND [ARG...]
- OPTIONS说明:
-
- -d,以后台方式执行命令;
-
- -e,设置环境变量
-
- -i,交互模式
-
- -t,设置TTY
-
- -u,用户名或UID,例如myuser:myusergroup
-
-
- 通常COMMAND只能是一条语句,为了支持多个命令的执行,需要将多个命令连接起来交给Shell,docker exec命令的使用示例如下:
-
- sudo docker exec myContainer bash -c "cd /home/myuser/myproject && git fetch ssh://gerrit_server:29418/myparent/myproject ${GERRIT_REFSPEC} && git checkout FETCH_HEAD";
- 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
好处就是,你在容器里敲命令就是 root 用户,畅通无阻,不存在权限不足的问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。