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 cleanandで終了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

exportおよびimportコマンドはファイル システムのみを処理し、実行するコマンドなどのメタデータは処理しません。代わりにsaveandを使用してください。https://github.com/moby/moby/issues/1826loadも参照してください。

于 2018-06-21T13:56:54.677 に答える