web-dev-qa-db-ja.com

開発中にDockerとGitの両方を使用する方法は?

Dockerのプッシュコマンドとレジストリは、Gitの使用に似ているようです。開発ワークフロー/プロセスでGitとDockerがどのように相互作用し、それらをどのように利用するかがわかりません。

Dockerリポジトリには、Gitリポジトリとともにソースコードの独自のコピーも含まれていますか?両方のリポジトリに完全なコードが含まれていても大丈夫ですか?プッシュまたはプルすると、プッシュとプルのどちらが変更されますか?両方の場合、どの順序ですか?

編集:Gitからコードを取得してDockerコンテナーをビルドする時期と、代わりにDockerイメージを取得する時期について質問しています。

12
Gherman

DockerとGitは2つのまったく異なるテクノロジーです。 Gitはソース管理ソリューションですが、Dockerでは、Dockerコンテナでアプリを実行できます。それは一種の「新しい」仮想化テクノロジーと考えてください。両方を同時に使用できますが、問題ありません。

....編集...

Dockerはソースコードのコピーを保持しません。 Dockerを使用すると、ソースコードに基づいてイメージを構築し、それをリポジトリに配置できます。そのイメージから、Dockerコンテナーでアプリを実行できます。基本的にワークフローについては、gitを使用して開発するだけで、展開にはDockerを使用します...

5
Run CMD

他の答えが言うように、gitはバージョン管理用です。テキストファイル用。

「dockerfile」(テキストファイル)からdockerコンテナを構築します。この「dockerfile」は、他の多くのファイルやフォルダーがあるディレクトリに配置されます。

したがって、dockerfileが置かれているこのディレクトリをgitリポジトリに配置すると、それにアクセスできるすべての人が、同じ構成とすべてを使用して同じdockerコンテナを構築できます。

ということですか?

したがって、Dockerコンテナは「建物」であり、DOCKERリポジトリは、すでに構築された建物(イメージ)をダウンロードできる市場であり、そこから仮想マシン/コンテナを実行できます。
GITリポジトリ内のファイル(これは、たとえばドキュメントの大きなアーカイブのようなものです)は、「構築計画」です。 gitを介して異なるバージョンの「建設計画」を「共有」するため、誰もが建物のすべてのバージョンを構築できます。

ワークフローの例:

開発環境(ローカルコンピューター)で:

  1. git pull-gitリポジトリから「構築-指示」を取得します(例:dockerfile)
  2. docker build-そのdockerfile-instructionsからdockerイメージを構築します
  3. docker Push myDockerRepo/myDockerImage:latest-新しく構築されたdockerイメージをDOCKERリポジトリにプッシュします(git-repositoryではありません)

実稼働環境で:

  1. docker pull myDockerRepo/myDockerImage:latest-DOCKERリポジトリから最新のdockerイメージを取得します
  2. docker run-dockerイメージから新しいコンテナー化されたインスタンス(基本的にVirtualMachine)を実行します
15
eli

Dockerプッシュコマンドは、画像をdockerリポジトリにプッシュします。画像はソースコードではありませんが、ソースコードを含む場合があり、画像の連続したプッシュは相互にオーバーライドでき、バージョニングを提供しません。イメージのプルとコンテナの実行に使用されます。 Docker Repo詳細情報

一方、git Pushは、ソースコードと他のファイルをリモートリポジトリにプッシュします。これはバージョン管理用です。プル、フォーク、またはプルリクエストをリモートgitリポジトリに送信し、ソースコードからアプリケーションをビルドできます。 Git Repo詳細情報

これらは一緒に使用でき、実際には多くの開発者が一緒に使用しています。彼らはさまざまな問題を解決することを目指しています。

0
Murat Güvenç