我正在尝试使用docker cp
从容器中复制文件。我使用docker build -t math-gsl-ubuntu-2004 .
构建了容器,并使用docker run
运行了容器映像后,在容器中生成了文件/math--gsl/Math-GSL-0.41.tar.gz
。要复制文件,我可以]
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b651512240f2 math-gsl-ubuntu-2004 "./entrypoint.sh 2.6" 3 hours ago Up 3 hours boring_lamport
ee008e7b8f01 44f63ff22dea "./entrypoint.sh" 3 hours ago Up 3 hours heuristic_liskov
然后我从上面的输出中注意到ID为b651512240f2
,我可以从主机发出docker cp b651512240f2:/math--gsl/Math-GSL-0.41.tar.gz .
以将文件从容器中取出。
现在我要通过名称math-gsl-ubuntu-2004
以编程方式确定容器ID:
$ docker inspect --format="{{.Id}}" math-gsl-ubuntu-2004
sha256:866d21bece6aaf63496a5b173cafa37a25e21d22f7d34c1bbae4c602526c419b
但是与b651512240f2
的容器ID不匹配。我想念什么?
您可以尝试此操作而不是检查图像,
docker ps -a | grep <image:tag> | awk '{print $1}' | head -n 1
examples:
docker ps -a | grep ubuntu | awk '{print $1}' | head -n 1
docker ps -a | grep ubuntu:18.04 | awk '{print $1}' | head -n 1