2016-07-06 5 views
2

ドッカーのイメージがあり、誰かがそれを変更してドッカーのリポジトリにプッシュするとします。それから私はイメージをプルダウンします。そのイメージを取得し、以前のレイヤーからコンテナを実行する方法はありますか?変更が行われる前にバージョンを実行します。私はドッキングウィンドウの履歴を実行する場合ドッカーイメージの前のレイヤーにタグを付ける方法や、コミットを元に戻す方法はありますか?

それは次のようになります:私は何とかタグや画像の前の層を識別するための方法を考え出す場合、私は以前のバージョンを実行できるかのように

docker history imagename:tag 
IMAGE    CREATED    CREATED BY          SIZE    COMMENT 
3e23a5875458  8 days ago   /bin/sh -C#(nop) ENV LC_ALL=C.UTF-8   0 B 
<missing>   8 days ago   /bin/sh -c dpkg-reconfigure locales && loc 1.245 MB 
<missing>   8 days ago   /bin/sh -c apt-get update && apt-get install 338.3 MB 
<missing>   6 weeks ago   /bin/sh -C#(nop) ADD jessie.tar.xz in/  121 MB 
<missing>   6 weeks ago   /bin/sh -C#(nop) MAINTAINER ssss <ad 0 B 
<missing>   9 months ago              0 B 

に思えます。

答えて

3

画像にアクセスできる場合は、画像のビルドレイヤにタグを付けることができます。記載の通りhere

あなたのケースでは、バージョンv1.10.0から、彼らはdocker engine handles content addressabilityの方法を変更しました。これは大きく論議されているhere

docker save imagename build-layer1 build-layer2 build-layer3 > image-caching.tar 
docker load -i image-caching.tar 

ユーザーが便利な方法への投稿をしている:それは何を意味

を使用すると、現在のマシンでこのイメージを構築したり組み合わせることで、エクスポートおよびロードされない限り、あなたがビルド層へのアクセスを持っていないということです私が以前に言及した議論でそのキャッシュを保存します。

docker save imagename $(sudo docker history -q imagename | tail -n +2 | grep -v \<missing\> | tr '\n' ' ') > image-caching.tar 

これは、与えられた画像のすべてのビルド層を収集し、キャッシュtarファイルにそれらを保存する必要があります。

+1

基本的にv1.10.0以降では、ビルドキャッシュが利用可能でない限り、画像の履歴から前のレイヤーにタグ付けすることはできません。 – jchysk

関連する問題