Docker exec命令概述
docker exec 命令可以用来在运行的 Docker容器 中执行命令。
docker exec命令是需要容器处于运行中且 PID 1 进程也处于运行中才能执行的操作。该命令后面的参数 container 可以是容器 Id 或者是容器名。
Docker exec命令语法
haicoder(www.haicoder.net)# docker exec [options] container command [arg...]
Docker exec命令参数列表
参数 | 描述 |
---|---|
–detach, -d | 后台运行模式,在后台执行命令相关命令。 |
–detach-keys | 覆盖容器后台运行的一些参数信息。 |
–env, -e | 设置环境变量。 |
–interactive, -i | 展示容器输入信息 STDIN。 |
–privileged | 为命令提供一些扩展权限。 |
–tty, -t | 命令行交互模式。 |
–user, -u | 设置用户名。 |
案例
查看文件
使用 docker run 命令,在后台运行一个容器。
haicoder(www.haicoder.net)# docker run -it -d --name haicoder ubuntu /bin/bash
#返回报文
5ee4fdbe4021bdb1983037f405ff6b0535399f8611c5542e52ae7ef9e12eb0c1
使用 docker ps 命令,查看当前正在运行的容器,显示如下图,所示:
使用 docker exec 命令,在运行的容器中执行命令 pwd,即查看当前目录。
haicoder(www.haicoder.net)# docker exec haicoder pwd
#返回结果
/
使用 docker exec 命令,在运行的容器中执行命令 ls,即查看目录文件。
haicoder(www.haicoder.net)# docker exec haicoder ls /tmp
#输出
ks-script-eC059Y
yum.log
使用 docker kill 和 docker rm 命令停止,并删除所有容器。
haicoder(www.haicoder.net)# docker kill haicoder
#输出
haicoder
haicoder(www.haicoder.net)# docker rm `docker ps -aq`
#输出
5ee4fdbe4021
创建文件
使用 docker run 命令,在后台运行一个容器。
haicoder(www.haicoder.net)# docker kill haicoder
#输出
haicoder
haicoder(www.haicoder.net)# docker rm `docker ps -aq`
#输出
5ee4fdbe4021
使用 docker ps命令,查看当前正在运行的容器,显示如下图,所示:
使用 docker exec命令,查看容器的 /etc 目录的文件是否有 haicoder。
haicoder(www.haicoder.net)# docker exec haicoder ls /etc | grep haicoder
此时终端没有任何输出,即 docker 容器的 /etc 目录,没有 haicoder 文件。
使用 docker exec 命令,在 docker 容器内部的 /etc 目录,创建一个 haicoder 文件。
haicoder(www.haicoder.net)# docker exec haicoder ls /etc | grep haicoder
再次使用 docker exec命令,查看容器的 /etc 目录的文件是否有 haicoder。
haicoder(www.haicoder.net)# docker exec haicoder ls /etc | grep haicoder
#输出
haicoder
此时终端输出了 haicoder,即使用 docker exec 在 docker 容器内部创建文件成功。
进入容器
使用 docker run -it -d 命令,启动一个 dokcer容器。
haicoder(www.haicoder.net)# docker run --name haicoder -it -d ubuntu
ecb444c660ac2828a75cfdc6279dfc3b6311537d5cd2944ac757b5c155d0b9a6
使用 docker ps命令,查看当前正在运行的容器,显示如下图所示:
使用 docker exec -it containerName /bin/bash 命令,进入正在运行的 docker 容器,此时终端显示如下图所示:
haicoder(www.haicoder.net)# docker exec -it haicoder /bin/bash
此时,终端提示符变成了容器Id,即我们进入了 docker容器内部。使用 exit 命令或者 Ctrl+d 退出容器,再次使用 docker ps 命令,查看当前正在运行的容器,此时终端显示如下:
原来正在运行的容器还在继续运行。
这里如果使用 docker attach 进入容器后,使用 exit 命令或者 Ctrl+d 退出容器那么运行的容器会退出。
使用 docker kill 和 docker rm 命令,删除所有容器。
haicoder(www.haicoder.net)# docker kill `docker ps -qa` ; docker rm `docker ps -aq`
Docker exec命令总结
docker exec 命令可以用来在运行的 Docker容器中执行命令。该命令是需要容器处于运行中且 PID 1 进程也处于运行中才能执行的操作。
Docker exec命令语法:
docker exec [options] container command [arg...]