問題タブ [docker-layer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - Docker ビルド間のレイヤーは共有できません
次の方法で、2 つの異なるマシンで Docker イメージのレイヤーを再利用したいと考えています。
- ビルドイメージ (1)
- イメージをレジストリにプッシュする (1)
- レジストリからイメージを取得する (2)
- 同じ docker イメージをビルドし、プルされたイメージからレイヤーを再利用する (2)
したがって、
マシン 1 :
この次のイメージをビルドします。
- 次のコマンドでこのイメージをビルドします。
docker build . -t <registry>/test-docker-image:latest
- イメージをレジストリにプッシュします。
docker push <registry>/test-docker-image:latest
マシン 2
- レジストリからイメージをプルします。
docker pull <registry>/test-docker-image:latest
このマシンで実行するdocker build .
と、プルされたイメージからレイヤーが再利用されません。
でプルされたイメージからレイヤーを再利用する方法はありdocker build
ますか?
同様の問題:
似たようなことを説明している GitHub の次のスレッドがありますが、これは と の間docker build
でレイヤーを共有する際の問題について説明していdocker-compose build
ます。https://github.com/docker/compose/issues/883
docker - Ubuntu ベースの Docker コンテナーを、MySQL および JDK の基礎となるレイヤーと共に完全に削除します。
Ubuntu 16.04 xenial をベース イメージとして使用してカスタム Docker イメージを作成し、その上に JDK-1.8 および MY-SQL レイヤーをインストールしました。以下は、イメージを作成するための Dockerfile のサンプル スナップショットです。
イメージの構築とコンテナの作成に関して、すべてが期待どおりに機能します。
しかし、このイメージを使用して作成された Docker-Container を削除しようとするたびに. その中のMY-SQLレイヤーを削除していません。
$ docker rm mycontainer mycontainerコマンドを使用して、上記のイメージを使用して作成したコンテナーを削除しました。
しかし、上記のイメージ ( --force-recreateオプションも使用) を使用してコンテナーを再作成すると、MySql データベースで以前のデータを確認できました。これは、$ docker rmが下層のレイヤーでコンテナーを完全に削除できないことを意味します。
MySQL または JDK の基礎となるレイヤーを含む docker-container を完全に削除する方法はありますか?
前もって感謝します。
kubernetes - Docker イメージとその Kubernetes Pod は異なります
Docker-Image の内容を変更し、Kubernetes Pod を実行しました。ただし、Kubernetes Pod には、変更された Docker イメージではなく、古いバージョンの Docker イメージのコンテンツが含まれていました。
それはどのように可能ですか?
K8s ワーカー ノードは、ローカルから可能な限り多くのレイヤーをフェッチしようとしており、docker-registry からは少数しかフェッチしようとしていないと推測しています。K8s ワーカー ノードがレジストリからのみ Docker イメージのすべてのレイヤーをプルするたびに、この問題を解決するにはどうすればよいですか?