Docker 进入容器,并在容器内执行命令
– 语法:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
– OPTIONS 参数说明:
- -i: 让容器的标准输入(STDIN)始终保持打开,即使没有输入任何指令(没有附加)
- -t: 分配一个终端,这样我们就可以使用命令来操作
- -d: 分离模式,让命令在后台(指的是宿主后台)运行。
- –user:指定用户运行,当我们需要 root 用户权限时可以指定。
【注】一般使用 -it
就足够了。
– COMMAND 参数:
command
指的是 shell
的类型,常见的有 bash
、sh
、zsh
,但是 Linux
系统大多数默认的是 bash
类型,新版 Mac OS
系统的话,默认的不再是 bash
,而是 zsh
。
– 查看正在运行的容器
docker ps
执行结果如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 91af26862191 nginx "/docker-entrypoint.…" 7 hours ago Up 2 hours 0.0.0.0:80->80/tcp webserver
– 使用 exec 进入容器
docker exec -it webserver bash
# 或
docker exec -it 91af26862191 bash
就可以进入到容器内部的命令行界面。
如果需要root
权限的话,可以指定 root
用户进入容器:
docker exec -it --user root webserver bash
# 或
docker exec -it --user root 91af26862191 bash
【注】webserver
与 91af26862191
都是容器的唯一标识,所以用哪个都可以。
一般容器里面的 Linux
是精简版的,没有 less 、cat 、vim/vi
等命令,如果需要的话可以自己安装,默认自带 APT
命令。
【注】如果是学习使用可以选择在容器内部安装其他命令,如果是正式环境的话推荐把各个容器的配置文件映射到宿主机器上(也就是装 Docker 的机器)方便维护
。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!