私はDockerの機能を学びたいと思っています。画像を保存するという見通しが混乱しています。Dockerコンテナの状態を保存するには?
私は基本的なUbuntuイメージを実行し、Anaconda Pythonと他のいくつかのものをインストールしました...だから、私の進歩を保存する最良の方法は何ですか?保存、コミット、エクスポート?
仮想マシンと同じ方法で動作するように見えるものはありません。これは、仮想マシンに明白なセーブステートファイルを提示します。
私はDockerの機能を学びたいと思っています。画像を保存するという見通しが混乱しています。Dockerコンテナの状態を保存するには?
私は基本的なUbuntuイメージを実行し、Anaconda Pythonと他のいくつかのものをインストールしました...だから、私の進歩を保存する最良の方法は何ですか?保存、コミット、エクスポート?
仮想マシンと同じ方法で動作するように見えるものはありません。これは、仮想マシンに明白なセーブステートファイルを提示します。
普通の方法は少なくともdocker commit
です:これは、コンテナの状態を新しいイメージに固定します。
注意:anchovylegendによってcommentedと表示されていますが、これはベストプラクティスではありません.Dockerfileを使用すると、イメージコンテンツを正式にモデル化し、初期状態を再構築/再現できるようになります。
その画像をdocker images
でローカルにリストして、再度実行することができます。
例:その後
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker commit c3f279d17e0a svendowideit/testimage:version3
f5283438590d
$ docker images
REPOSITORY TAG ID CREATED SIZE
svendowideit/testimage version3 f5283438590d 16 seconds ago 335.7 MB
、if you have deployed a registry serverは、サーバーを言ったために、あなたのイメージをプッシュすることができます。
この種のシナリオでは、ドッカーファイルを使用してください。 MongoDBを持つUbuntuのイメージのため
例の場合:また
FROM ubuntu
MAINTAINER Author name
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
RUN echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | tee -a /etc/apt/sources.list.d/10gen.list
RUN apt-get update
RUN apt-get -y install apt-utils
RUN apt-get -y install mongodb-10gen
#RUN echo "" >> /etc/mongodb.conf
CMD ["/usr/bin/mongod", "--config", "/etc/mongodb.conf"]
これは動作しますがドッカーを書くためのベストプラクティスがhttps://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
ファイル参照、このアプローチは、ドッカーコミュニティによって貧しい練習考えられています。移動する最善の方法は、Dockerfileを使用することです。 – AnchovyLegend
@AnchovyLegend私はあなたのコメントを含む答えを編集し、それを明確にすることに同意し、編集しました。 – VonC
dockerfileはプログラムのインストールを再現しますが、例えばデータベースにデータをロードすると、dockerfileはその状態を正しく保存しません。 – chrismarx