Ale*_*bbe 1 docker docker-compose
我正在尝试编写一个 docker-compose 文件,该文件将构建并将我的图像的版本(1.0、1.1...)和最新版本推送到我的本地 v2 docker 注册表。但是,当我运行时,docker-compose build出现以下错误:
ERROR: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
Run Code Online (Sandbox Code Playgroud)
我发现很多人出于多种不同的原因抱怨这个错误,在我的例子中,它与权限或天气或 docker 服务是否正在运行无关,我将其范围缩小到我的图像命名上有一个 URL(我的本地注册表的 URL),我知道这一点,因为如果我正常命名我的图像(如“/app:latest”),那么命令运行正常。那么如何才能有一个 URL 作为图像名称呢?
这是我想要做的(docker-compose.yaml):
ERROR: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
Run Code Online (Sandbox Code Playgroud)
一般来说,我对 docker 很陌生,我的主要目标是有一个简单的、最好是一个命令(例如docker-compose build),它将构建并标记我的前端和后端图像,以便我可以执行docker-compose push以推送那些新创建的图像图像到我在 AWS 上运行的注册表。这样,我还希望能够覆盖注册表中这些映像的最新版本,同时添加版本化映像以进行备份,以防我将来想重新访问这些版本中的任何一个。
然后,在 AWS EC2 机器中,我有另一个docker-compose.yaml文件,它只获取两个映像的最新版本并运行它们的容器。
总而言之,我将在本地计算机上开发应用程序,然后手动将新版本添加到本地docker-compose.yaml文件中的版本化服务中,然后docker-compose build运行docker-compose push; 然后 ssh 进入我的 AWS 机器并运行docker-compose up以获取最新和新更新的图像并运行它们。
这稍后可能会演变成 CI/CD 管道,但现在我正在采取一些小步骤,并尝试让我的图像名称中包含 URL。
谢谢。
我尝试使用.envwithREGISTRY=http://my_registry_url:5000/marvin然后使用image: "${REGISTRY}/frontend:latest"orimage: "$${REGISTRY}/frontend:latest"但这也不起作用
| 归档时间: |
|
| 查看次数: |
5909 次 |
| 最近记录: |