git - 何时从 Docker 存储库中提取,何时从 Git 存储库中提取然后构建?

假设我有一台机器。它可以是单个生产服务器、集群中的一个生产节点、某种登台服务器、用于测试的服务器或集群或开发人员工作站。或者不同的东西。

现在我想将应用程序交付给机器并运行它。我可以 git pull && docker build。或者我可以docker pull。或者我可以 git pull 到另一台机器,然后 scp 代码代替。或者我可以 scp docker image tar 然后 docker load 而不是 docker pull

当然,Git 和 Docker 完全不同,而且经常同时使用。但是,两者都有存储库,并且都可以用于存储和交付代码。甚至命令本身也被称为相同的:push 和 pull。 Docker 甚至有一些类似于提交的图像标签。因为标签还有助于保留应用的多个版本。

甚至还有一个完全基于 Git 的用于在生产环境中交付应用程序的工具。这是卡皮斯特 pull 诺。 Capistrano git pulls 代码到另一个目录,然后重定向一个符号链接(symbolic link)到它以便部署。

问题是在决定是 git pull 还是 docker pull 将代码交付给机器时要考虑哪些原因?

最佳答案

就像其他答案所说,git 用于版本控制,例如对于文本文件。

您从“dockerfile”(这是一个文本文件)构建一个 docker 容器。 这个“dockerfile”被放置在一个包含许多其他文件和文件夹的目录中。

因此,如果您将 dockerfile 所在的这个目录放入 git 存储库,那么有权访问它的每个人都可以构建相同的 docker 容器,具有相同的配置和所有内容。

你是这个意思吗?

因此,docker 容器是一个“建筑物”,而 DOCKER 存储库是一个市场,您可以在其中下载已构建的建筑物(图像),从中您可以运行虚拟机/容器。
GIT 存储库中的文件(这就像一个大文件,例如文档)是“ build 计划”。你通过 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-repository pull 最新的 docker 镜像
  2. docker run - 从 docker 镜像中运行一个新的容器化实例(基本上是一个 VirtualMachine)

https://stackoverflow.com/questions/49071356/

相关文章:

docker - 如何在 Docker 内的 Jenkins 中运行 Katalon 测试套件

docker - 在 docker 中生成自签名证书

Docker - 关于使用 Redis、Postgres、ElasticSearch、NGINX、W

macos - 无法从 docker 容器访问本地网络 IP

docker - 如何用 nix 构建一个 docker 容器?

docker - 如何在 Docker 中将卷从容器挂载到主机?

docker - 如何在 Docker Hub 上查看 Docker 镜像层?

docker - 为什么 Kubernetes 源代码比其他容器编排器大一个数量级?

docker - 停止和启动容器时出现奇怪的 docker 错误

docker - 使用 pyodbc 将 docker python 连接到 SQL 服务器