【发布时间】:2024-01-05 18:29:01
【问题描述】:
我有一个关于 docker compose 的问题。我是 docker 新手,我不知道部署的“正确”流程。
假设我们有一个 "Dockerfile",其中包含从项目源文件构建映像的步骤。 我们有一个 "docker-compose.yml",它实际上是在构建这个 "Dockerfile" 以及另外 2 个服务。 这里不重要,但可以说它们是 nginx、webapi(实际项目)和 mongodb。
所以,如果我要在我的机器上运行 "docker compose up" - 它会创建 3 个映像(webapi、nginx、mongodb)并运行它们。这里的一切都很完美。
问题是,我需要做些什么才能将其部署到生产中。我尝试过的:
我可以在生产服务器上签出 git 并运行 "docker compose up",它会工作。但我认为这不是要走的路——使用生产服务器来构建项目似乎很愚蠢。
我可以在本地运行"docker compose build",得到3个镜像,推送到docker仓库,去生产从仓库下载镜像并一个一个启动。在这种情况下,我根本看不到 "docker compose" 的意义,我失去了轻松定义图像之间的体积和关系的方法,我可以使用 docker compose 来完成。它还需要大量手动活动,或一些自定义脚本来自动化它。
似乎有一种方法可以使用 "docker machine" 连接到远程服务器并使用 "docker compose up",但我无法让它起作用。由于某些原因,无法从 Windows 连接到 Linux 上的远程 docker。 在进一步使用该选项之前,我需要了解/确认远程 docker 和 “docker compose up” 的情况,构建将在哪里进行?如果我在 "docker-compose.yml" 中定义了一些卷,它们是在本地机器上创建还是在远程机器上创建?
【问题讨论】:
标签: docker docker-compose