1

在放弃了其他方法来正确记录我的R分析环境以实现分析再现性之后,我开始着手将每个单独的分析包装到一个docker容器中。这是我所做的:

  1. 从项目中拉出最新的rstudio容器:rocker

    docker pull rocker/rstudio
    
  2. 创建项目特定的副本

    docker run -d -p 8787:8787 rocker/rstudio # Produces baseID
    docker commit --message="Snapshot of current rocker/rstudio container" <baseID> rstudio_project.2018
    docker stop <baseID>
    
  3. 启动容器:

    docker run -d -p 8787:8787 -e ROOT=TRUE rstudio_project.2018 # produces ID
    
  4. R( Studio)- 基于项目分析...以sudo apt-get clean和结尾sudo rm -rf /tmp/*

  5. 导出 docker 镜像:

    docker export -o docker_rstudio_project.2018.tar <ID>
    xz docker_rstudio_project.2018.tar
    

从我的本地注册表中删除所有相关容器/图像后,我尝试模拟对打包项目的重新访问,如下所示:

  1. 导入容器:

    docker import docker_rstudio_project.2018.tar.xz rstudio_project.2018.2
    
  2. (尝试)像原始容器一样启动容器:

    docker run -d -p 8787:8787 -e ROOT=TRUE rstudio_project.2018.2

然后我面临以下错误:

docker: Error response from daemon: No command specified.

我究竟做错了什么?容器在哪里丢失(什么)关于默认启动什么的信息?

4

1 回答 1

2

exportandimport命令只处理文件系统,而不是像运行什么命令这样的元数据。使用saveandload代替。另见https://github.com/moby/moby/issues/1826

于 2018-06-21T13:56:54.677 回答