#docker run ubuntu /bin/bash -c “while true; do sleep 1; done”怎么退出
时间: 2024-09-09 16:04:12 浏览: 79
安装docker-compose的两种最简方法
`docker run` 命令启动的容器默认会继承宿主机的标准输入、输出和错误输出,所以当你在命令行中运行这个命令时,你的终端会与容器的标准输入绑定。
如果你想退出这个 `docker run` 启动的容器中的循环,你通常需要终止容器。因为这个容器正在执行一个无限循环的命令(`while true; do sleep 1; done`),你不能简单地在终端按 `Ctrl+C` 来中断这个命令,因为这样做只会关闭你终端与容器标准输入的连接。
要退出这个循环并关闭容器,你可以尝试以下操作:
1. **使用 `exit` 命令:** 如果你在容器内部打开了另一个终端会话,你可以在那个终端里运行 `exit` 命令来关闭容器。
2. **强制杀死容器:** 如果你没有在容器内部打开其他终端,或者 `exit` 命令不起作用,你可以使用 `docker kill` 命令来强制终止容器。你可以通过容器ID或名称来指定要杀死的容器。要找到容器的ID或名称,你可以先使用 `docker ps` 查看当前正在运行的容器,然后使用 `docker kill <container_id_or_name>`。
例如:
```bash
docker ps # 查看正在运行的容器列表
docker kill <container_id> # <container_id> 是你看到的容器的ID
```
如果你只是想停止循环,而不退出容器,你可以尝试在容器内部打开另一个终端会话,然后运行以下命令:
```bash
kill -2 <PID> # <PID> 是循环脚本的进程ID
```
这个命令会向进程发送一个SIGINT信号,导致该进程退出,但不会关闭容器。
阅读全文