2. docker exec 命令
docker exec 命令用于在正在运行的 Docker 容器中执行命令(容器内的命令)。
命令格式
docker exec [选项] 容器名或容器ID 命令 [命令选线和参数...]
命令别名:
docker container exec
常用选项
选项
说明
-d在后台运行命令。
-e <环境变量名=环境变量值>设置环境变量。
-i保持 STDIN 打开,即使没有附加。
-t分配一个伪终端。
-u <容器用户名>指定执行命令的用户名或UID。
-w <容器内路径>指定命令的工作路径。
示例
进入到正在运行的容器 mysql_server 中并执行内部 的 bash 来查看 MySQL 的配置文件 /etc/my.cnf
weimingze@mzstudio:~$ sudo docker exec -it mysql_server /bin/bash
bash-5.1# ls
afs bin boot dev docker-entrypoint-initdb.d etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
bash-5.1# cat /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/9.3/en/server-configuration-defaults.html
[mysqld]
... # 以下略
bash-5.1#
/bin/bash 是容器内的 Shell,我们还可以直接运行程序内的其他命令。
bash-5.1# 是容器内 bash 的提示符,这个提示符可以通过修改 PS1 环境变量来重新设置。如:
weimingze@mzstudio:~$ sudo docker exec -it mysql_server /bin/bash
bash-5.1# PS1="\u@\h# "
root@b0f4852e19af# PS1="\s-\v # "
bash-5.1 # exit
exit
weimingze@mzstudio:~$
PS1 中的含义
\u用户名。\h主机名(这里是容器ID)。\w当前工作路径。-sShell 的名称。-vShell 的版本。