gpt4 book ai didi

docker - 如何创建准备使用 docker-compose 进行部署的镜像

转载 作者:行者123 更新时间:2023-12-02 06:34:25 25 4
gpt4 key购买 nike

如何创建准备使用 docker-compose 部署的镜像?

我对docker-compose有点困惑,它感觉是一个很棒的工具,但是,如何在没有Dockerfile的情况下为我的服务构建镜像?

我想要实现的是从 docker-compose.yml 文件中声明的服务创建新镜像。例如,假设我有以下设置:

api:
image: node:latest
volumes:
- "./api:/"
ports:
- "3001:3001"
command: npm start

client:
image: node:latest
volumes:
- "./client:/"
ports:
- "3000:3000"
command: npm start

db:
image: mysql:latest

所以我有 2 个容器,如何为每个容器创建准备推送的 docker 镜像?

例如我想部署api容器

$ docker-compose build --no-cache api

接下来我需要运行吗?

$ docker build -t api 。

这需要Dockerfile,或者我可以直接进行镜像推送吗?

然后用

推送它

docker 推送主机名/api:最新

<强>1。什么是正确的流程?

<强>2。或者也许这是完全错误的方式?

编辑:

我想要在这里实现的是理解或了解正确的流程,例如我在问题中提出的情况,我想将此容器推送到实际服务器。并且 ofc 我不想在那里运行多容器应用程序。因此,给出这个示例,假设我还有一个容器,例如 db(更新的撰写文件示例)。使用 docker compose 在本地计算机上开发成功的应用程序后,我想部署它们,假设 AWS 在大多数情况下我有数据库服务,我需要的是将 API 容器镜像上传到 EC,但我不需要想要将 db 一个或 client 部署到同一服务器。

因此,为了做到这一点,我需要构建可以推送到我的 AWS 的 docker 镜像。如何根据我所拥有的(docker compose 设置)做到这一点?

最佳答案

您通常需要在使用 docker-compose 之前构建镜像,但是有一个 buold 属性可以直接在 compose 中重建您的 iamges,无论如何,您将需要一个 docker 文件并指定位置:

version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
redis:
image: "redis:alpine"

关于docker - 如何创建准备使用 docker-compose 进行部署的镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46230169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com