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

时间:2017-01-23 23:40:20

标签: docker

我正在尝试关注instructions here,以便运行不属于预建Docker容器的Jupyter笔记本。

为了获得包含ID,我在Docker Quickstart Terminal中使用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

谢谢!

4 个答案:

答案 0 :(得分:0)

使用--name为容器命名 docker run -d --name containername

然后使用该名称 docker exec -it containername bash

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

答案 1 :(得分:0)

docker exec仅适用于正在运行的容器, ctrl - c 通常会停止/终止容器。

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

cid=$(docker run --detach <image>)
docker exec -ti $cid bash

如果您仍想查看容器输出,请使用docker logs $cid

答案 2 :(得分:0)

当容器终止时,只需执行此操作即可获取容器ID:

$ docker ps -a

答案 3 :(得分:0)

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

import socket; print(socket.gethostname())