Docker的推送命令和注册表看起来类似于使用Git。我不明白Git和Docker如何在开发工作流程/流程中进行交互以及如何使用它们。
docker存储库是否还包含自己的源代码副本以及Git存储库?这两个存储库是否包含完整代码?当我推或拉两个中的哪一个时我会推拉?如果两者都以哪个顺序?
编辑: 我问的是什么时候我应该从Git中提取代码并构建Docker容器以及何时应该拉取Docker镜像。
答案 0 :(得分:7)
您从“dockerfile”(这是一个文本文件)构建一个docker容器。 这个“dockerfile”放在一个包含许多其他文件和文件夹的目录中。
因此,如果您将dockerfile所在的目录放入git存储库,那么每个有权访问它的人都可以使用相同的配置和所有内容构建相同的docker容器。
是你的意思吗?
因此,docker容器是一个“建筑物”,DOCKER-repository是一个可以下载已经建成的建筑物(图像)的市场,您可以从中运行虚拟机/容器。
并且GIT存储库中的文件(这就像文档的大存档)是“构建计划”。您可以通过git“共享”不同版本的“施工计划”,这样每个人都可以构建建筑的每个版本。
示例工作流程:
在您的开发环境(您的本地计算机)中:
git pull
- 从git存储库中提取“构造 - 指令”(例如dockerfile)docker build
- 从dockerfile-instructions docker push myDockerRepo/myDockerImage:latest
- 将新构建的docker镜像推送到DOCKER存储库(而不是git-repository)在您的生产环境中:
docker pull myDockerRepo/myDockerImage:latest
- 从DOCKER-repository docker run
- 从docker image运行一个新的容器化实例(基本上是一个VirtualMachine)答案 1 :(得分:4)
Docker和Git是两种完全不同的技术。 Git是一个源代码控制解决方案,而在docker中,您可以在docker容器中运行应用程序。把它想象成一种新的'虚拟化技术。 你可以同时使用两者,没问题。
....编辑......
Docker不会保留源代码的副本。使用docker,您可以根据源代码构建映像并将其放入存储库。从该图像中,您可以在docker容器中运行应用程序。至于工作流基本上,你只是使用git开发,而对于部署你使用Docker ...
答案 2 :(得分:1)
Docker push命令,将图像推送到docker存储库,图像不是源代码,虽然可能包含源代码,但连续推送图像可以互相覆盖,并且不提供版本控制。它用于拉动图像和运行容器。 Docker Repo further info
另一方面,git push将您的源代码和其他文件推送到远程存储库。这是版本控制。您可以将请求拉,分或拉请求到远程git存储库,并可以从源代码构建应用程序。 Git Repo further info
它们可以一起使用,实际上是由许多开发人员一起使用。他们的目标是解决不同的问题。