使用 docker run -it --rm IMAGE_NAME /bin/bash 可启动并进入交互式容器,其中 -i 保持输入、-t 分配伪终端、--rm 自动清理,镜像无 bash 时改用 /bin/sh。

使用 docker run 启动并进入交互式容器,关键在于组合正确的参数:让容器以交互模式运行、分配伪终端、并指定一个可交互的 shell(如 /bin/bash 或 /bin/sh)。
基础命令格式
最常用的一条命令是:
docker run -it --rm IMAGE_NAME /bin/bash
其中:
- -i(interactive):保持 STDIN 打开,允许你输入指令
- -t(tty):为容器分配一个伪终端,让命令行显示更友好(比如有提示符、支持上下箭头)
- --rm:容器退出后自动删除,避免残留停止状态的容器
-
IMAGE_NAME:镜像名,例如
ubuntu:22.04、alpine、python:3.11-slim -
/bin/bash:启动时执行的命令;如果镜像没有 bash(如 Alpine),改用
/bin/sh
常见场景与写法
根据实际需求灵活调整:
- 启动 Ubuntu 容器并进 bash:
docker run -it --rm ubuntu:22.04 /bin/bash - 启动 Alpine 容器(默认无 bash):
docker run -it --rm alpine /bin/sh - 挂载当前目录到容器内方便测试:
docker run -it --rm -v $(pwd):/workspace -w /workspace ubuntu:22.04 /bin/bash
(-v挂载,-w设置工作目录) - 映射端口再进入(适合调试 Web 服务):
docker run -it --rm -p 8080:80 nginx /bin/bash
进入后可手动运行nginx -g "daemon off;"或查看配置
退出容器但不终止?注意别搞混
在容器中按 Ctrl+D 或输入 exit 会退出 shell 并终止容器(因为这是主进程)。如果你用了 --rm,容器还会被自动清理。
想临时“断开”而不关闭容器(即 detach),启动时不要加 -it,而是用:
docker run -d --name myapp nginx
之后用 docker exec -it myapp /bin/bash 进入已运行的容器。
小技巧:快速验证镜像是否含 bash
不确定某个镜像有没有 /bin/bash?先尝试运行 shell:
docker run --rm IMAGE_NAME which bash
或docker run --rm IMAGE_NAME sh -c "ls /bin | grep -E '^(bash|sh)$'"
没输出 bash 就直接用 /bin/sh,大多数 Linux 镜像都支持它。

















