【问题标题】:How to list the files inside ubuntu:16.04 docker container?如何列出 ubuntu:16.04 docker 容器中的文件?
【发布时间】:2018-03-22 12:46:10
【问题描述】:
I have created docker container for ubuntu:16.04 and spark.

我的 docker 镜像名称TestDocker

使用 spark 应用程序我已将 test.txt 复制到容器 /opt/ml/ 位置。

当我执行下面的命令时,它显示如下:

docker images


    REPOSITORY                     TAG                   IMAGE ID          CREATED              SIZE
    xx.com/decision-trees-sample   latest              af30271f1528        19 minutes ago      959MB

然后我尝试执行下面的命令

docker exec -it decision-trees-sample ls /opt/ml

显示错误。

现在我想用 docker 命令检查文件是否被复制,是否可以检查?

如何列出 /opt/ml/ 中包含的 (LS) 文件?

【问题讨论】:

    标签: docker docker-compose dockerfile docker-swarm docker-machine


    【解决方案1】:

    您可以使用

    在容器内启动 shell

    docker exec 命令,请参阅文档

    https://docs.docker.com/engine/reference/commandline/exec/

    例如,如果你的容器的 id 是 123abcdef,你可以这样做

    docker exec -it 123abcdef ls /opt/ml

    或在容器内打开一个外壳

    docker exec -it 123abcdef bash

    然后启动 lsfind 或任何其他命令

    【讨论】:

    • 您好,感谢您的快速回复,我已经尝试了您的建议,但仍然出现错误我已经更新了我的问题,您能帮我解决这个问题吗?
    • 启动你的镜像,让它成为一个正在运行的容器docker run -it myimage bash ,现在你可以访问这个容器了
    • 发帖docker ps
    【解决方案2】:

    试试下面的步骤

    docker exec -it 决策树样本

    然后设置环境变量为

    导出 TERM=xterm

    然后试试

    docker exec -it 123abcdef ls /opt/ml
    

    基本上它会告诉您您要打开哪种终端。主要是由于未安装某些有关终端的软件包,您也可以将其添加到 ~/.bashrc 文件并提交图像。

    【讨论】:

      【解决方案3】:

      我同意上述答案,docker exec 仅用于运行容器,但如果您真的想探索容器图像内容,我建议您使用container-diff

      container-diff analyze --type=file <IMG> | grep /opt/ml
      

      【讨论】:

      猜你喜欢
      • 2018-08-29
      • 2018-08-12
      • 2018-11-03
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 2020-09-19
      相关资源
      最近更新 更多