如何在docker中获取docker容器ID?

如何在docker中获取docker容器ID?,docker,Docker,我正试着按照程序运行一个Jupyter笔记本,它不是预先构建的Docker容器的一部分 为了获取contain id,我在Docker Quickstart终端中使用Ctrl+C终止笔记本服务器时(笔记本服务器运行时没有响应),我得到了 $ docker ps -lq 0a8f14a15b4f 然后我做了这个 $ docker exec -it 0a8f14a15b4f bash Error response from daemon: Container 0a8f14a15b4f357352f

我正试着按照程序运行一个Jupyter笔记本,它不是预先构建的Docker容器的一部分

为了获取contain id,我在Docker Quickstart终端中使用Ctrl+C终止笔记本服务器时(笔记本服务器运行时没有响应),我得到了

$ docker ps -lq
0a8f14a15b4f
然后我做了这个

$ docker exec -it 0a8f14a15b4f bash
Error response from daemon: Container 0a8f14a15b4f357352f3c40b6d449e1d9150a0ce79
5fd81c09c00e978ea86163 is not running
那么,到底发生了什么?我应该如何获得容器id以便可以执行以下操作

docker exec -it [container-id] bash

谢谢

使用
docker run-d--name containername

然后用这个名字
docker exec-it containername bash

不要忘记使用
-d
键运行它,或者在不同的终端中运行命令

只会在运行的容器上工作,而ctrl-c通常会停止/终止容器

可以运行容器,然后该命令将新的容器ID打印到stdout

cid=$(docker run --detach <image>)
docker exec -ti $cid bash
cid=$(docker运行--分离)
docker exec-ti$cid bash

如果仍要查看容器输出,请在终止容器时使用
docker logs$cid

,只需执行以下操作即可获取容器id:

$ docker ps -a

您可以使用在特定容器中运行的python控制台在容器中获取容器id。基本上,容器id只是一个套接字主机名。您可以通过以下方法获得相同的结果

import socket; print(socket.gethostname())

谢谢你的回复@Matt!那么,在使用Ctrl+C终止当前容器后,我是否应该在Docker Quickstart终端中分别输入上述两行?执行此操作后,我收到错误消息:“bash:command substitution:第19行:意外标记附近的语法错误
)“bash:command substitution:第19行:
docker run--detach”)。您需要用您尝试运行的映像替换
$(
之间的位应该是您的
docker run
命令所包含的任何内容,但包含
-d
-detach
。感谢您的回复@Valentin!我目前使用“docker start-ai tensorflow udacity”启动容器。因此,也许我需要执行“docker exec-it tensorflow udacity bash”,但我收到了错误消息“来自守护进程的错误响应:容器0a8f14a15b4f357352f3c40b6d449e1d9150a0ce79 5fd81c09c00e978ea86163未运行”。