Dockerのプッシュコマンドとレジストリは、Gitの使用に似ているようです。開発ワークフロー/プロセスでGitとDockerがどのように相互作用し、それらをどのように利用するかがわかりません。
Dockerリポジトリには、Gitリポジトリとともにソースコードの独自のコピーも含まれていますか?両方のリポジトリに完全なコードが含まれていても大丈夫ですか?プッシュまたはプルすると、プッシュとプルのどちらが変更されますか?両方の場合、どの順序ですか?
編集:Gitからコードを取得してDockerコンテナーをビルドする時期と、代わりにDockerイメージを取得する時期について質問しています。
DockerとGitは2つのまったく異なるテクノロジーです。 Gitはソース管理ソリューションですが、Dockerでは、Dockerコンテナでアプリを実行できます。それは一種の「新しい」仮想化テクノロジーと考えてください。両方を同時に使用できますが、問題ありません。
....編集...
Dockerはソースコードのコピーを保持しません。 Dockerを使用すると、ソースコードに基づいてイメージを構築し、それをリポジトリに配置できます。そのイメージから、Dockerコンテナーでアプリを実行できます。基本的にワークフローについては、gitを使用して開発するだけで、展開にはDockerを使用します...
他の答えが言うように、gitはバージョン管理用です。テキストファイル用。
「dockerfile」(テキストファイル)からdockerコンテナを構築します。この「dockerfile」は、他の多くのファイルやフォルダーがあるディレクトリに配置されます。
したがって、dockerfileが置かれているこのディレクトリをgitリポジトリに配置すると、それにアクセスできるすべての人が、同じ構成とすべてを使用して同じdockerコンテナを構築できます。
ということですか?
したがって、Dockerコンテナは「建物」であり、DOCKERリポジトリは、すでに構築された建物(イメージ)をダウンロードできる市場であり、そこから仮想マシン/コンテナを実行できます。
GITリポジトリ内のファイル(これは、たとえばドキュメントの大きなアーカイブのようなものです)は、「構築計画」です。 gitを介して異なるバージョンの「建設計画」を「共有」するため、誰もが建物のすべてのバージョンを構築できます。
ワークフローの例:
開発環境(ローカルコンピューター)で:
git pull
-gitリポジトリから「構築-指示」を取得します(例:dockerfile)docker build
-そのdockerfile-instructionsからdockerイメージを構築しますdocker Push myDockerRepo/myDockerImage:latest
-新しく構築されたdockerイメージをDOCKERリポジトリにプッシュします(git-repositoryではありません)実稼働環境で:
docker pull myDockerRepo/myDockerImage:latest
-DOCKERリポジトリから最新のdockerイメージを取得しますdocker run
-dockerイメージから新しいコンテナー化されたインスタンス(基本的にVirtualMachine)を実行しますDockerプッシュコマンドは、画像をdockerリポジトリにプッシュします。画像はソースコードではありませんが、ソースコードを含む場合があり、画像の連続したプッシュは相互にオーバーライドでき、バージョニングを提供しません。イメージのプルとコンテナの実行に使用されます。 Docker Repo詳細情報
一方、git Pushは、ソースコードと他のファイルをリモートリポジトリにプッシュします。これはバージョン管理用です。プル、フォーク、またはプルリクエストをリモートgitリポジトリに送信し、ソースコードからアプリケーションをビルドできます。 Git Repo詳細情報
これらは一緒に使用でき、実際には多くの開発者が一緒に使用しています。彼らはさまざまな問題を解決することを目指しています。