如何检查已停止的 docker 容器文件

Ath*_*ban 7 docker docker-compose

步骤1:

docker ps -a

container Id: dd5cf6b519b4

我需要检查无法启动的停止的 docker 容器内部。

我尝试过docker exec -it container-id bin/bash但这是为了运行容器。

Ath*_*ban 11

$ docker ps -a

CONTAINER ID   IMAGE   COMMAND     CREATED         STATUS                    NAMES
0dfd54557799   ubuntu  "/bin/bash" 25 seconds ago  Exited (1) 4 seconds ago  peaceful_feynman

Commit the stopped image
$ docker commit 0dfd54557799 debug/ubuntu

now we have a new image
$ docker images
REPOSITORY    TAG     IMAGE ID       CREATED         SIZE  
debug/ubuntu  <none>  cc9db32dcc2d   2 seconds ago   64.3MB

create a new container from the "broken" image
$ docker run -it --rm --entrypoint sh debug/ubuntu


inside of the container we can inspect - for example, the file system
$ ls /app    
App.dll
App.pdb
App.deps.json
Run Code Online (Sandbox Code Playgroud)


Dan*_*nik 5

您可以使用特定入口点启动容器

docker run --entrypoint sleep YOUR_IMAGE 3600
Run Code Online (Sandbox Code Playgroud)

它将阻塞当前终端 3600 秒。您可以打开新的终端选项卡(不要关闭当前的终端选项卡),然后可以验证您的容器是否正在使用

docker ps
Run Code Online (Sandbox Code Playgroud)

如果您不想阻止当前终端,可以-d向 docker run 添加标志:

docker run -d --entrypoint sleep YOUR_IMAGE 3600
Run Code Online (Sandbox Code Playgroud)

上面的命令将启动 docker,它将不执行任何操作,然后您可以在容器运行时通过 ssh 进入容器

docker exec -ti CONTAINER HASH sh
Run Code Online (Sandbox Code Playgroud)