You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看Ubuntu:16.04 Docker容器内文件及排查文件复制异常

问题1:如何列出Ubuntu:16.04 Docker容器内的文件?

根据容器的运行状态,有几种实用的方法可以查看容器内的文件:

  • 如果容器正在运行:

    • 直接执行ls命令查看指定路径:
      docker exec -it <容器ID或容器名称> ls <目标路径>
      
      比如查看根目录文件:docker exec -it my-ubuntu-container ls /
    • 进入容器交互终端后自由查看:
      docker exec -it <容器ID或容器名称> /bin/bash
      
      进入容器后,直接输入ls或ls <目标路径>就能看到对应内容。
  • 如果容器未运行:

    • 临时启动容器并查看(退出后自动删除这个临时容器):
      docker run --rm -it <镜像ID或镜像名称> ls <目标路径>
      
      比如基于ubuntu:16.04镜像查看根目录:docker run --rm -it ubuntu:16.04 ls /
    • 也可以把容器内的文件复制到本地再查看:
      docker cp <容器ID>:<容器内路径> <本地路径>
      
      比如把容器内/opt/ml目录复制到本地当前目录:docker cp my-container:/opt/ml ./local-ml

问题2:检查test.txt是否成功复制到容器/opt/ml目录

从你的描述来看,你可能混淆了镜像和容器的核心概念:docker exec命令是针对正在运行的容器生效的,而不是镜像名称。你执行docker images看到的xx.com/decision-trees-sample:latest是镜像,并不是正在运行的容器。按照下面的步骤逐步排查:

  1. 先确认是否有基于该镜像启动的容器
    查看所有正在运行的容器:

    docker ps
    

    如果没找到目标容器,查看所有容器(包括已停止的):

    docker ps -a
    
  2. 针对不同情况处理

    • 如果容器未运行:
      • 先启动容器,再执行exec命令查看:
        docker start <容器ID或容器名称>
        docker exec -it <容器ID或容器名称> ls /opt/ml
        
      • 或者临时启动一个基于该镜像的容器,直接查看镜像内的/opt/ml目录(如果test.txt是在构建镜像时复制进去的):
        docker run --rm -it xx.com/decision-trees-sample:latest ls /opt/ml
        
    • 如果容器正在运行但exec报错:
      • 检查容器名称是否正确:用docker ps输出里的NAMES列值代替decision-trees-sample,或者直接用容器ID(更不容易出错)
      • 先确认/opt/ml目录是否存在:
        docker exec -it <容器ID> ls /opt
        
      • 尝试用root权限执行命令(避免权限不足的问题):
        docker exec -it --user root <容器ID> ls /opt/ml
        
  3. 额外验证提示
    如果你的test.txt是通过Spark应用复制到运行中的容器内的,那么只有那个特定容器会有这个文件;如果是在构建镜像时通过Dockerfile复制的,那么所有基于该镜像启动的容器都会包含这个文件。你可以根据自己的复制方式选择对应的检查方法。

内容的提问来源于stack exchange,提问作者Sai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:24:10