现在我想通过docker-compose
启动我的微服务,不幸的是我无法提取这些图像,repository callista/discovery-server not found: does not exist or no pull access
我通过登录我的DockerHub帐户并将这些图像推送到远程服务器来解决此错误。但在我看来,在互联网上一次又一次地发送如此大的图像(可能会很快改变)两次(推送和拉动)有点过分。
是否可以将Docker配置为在本地安装这些映像而不是从远程服务器提取?
我使用Docker 1.8并在Windows 10上工作。
答案 0 :(得分:1)
如果在docker-compose.yml中定义build
选项,则应该能够使用Docker Compose在本地构建图像,然后使用这些图像而不会拉动。默认情况下,如果未在本地找到图像,Docker Compose会构建图像。如果要重建图像,只需添加--build
选项docker-compose up命令docker-compose up --build
Docker撰写构建参考: https://docs.docker.com/compose/compose-file/#build
答案 1 :(得分:1)
您是否需要在与您构建的服务器不同的服务器中运行此图像?
如果您需要一些替代方案:
正如@ engineer-dollery所说,您可以在您的网络中运行注册表,而不是只需要在您的网络中通过互联网发送注册表。文档:https://docs.docker.com/registry/deploying/
您可以使用docker save
和docker import
来移动。文档:https://docs.docker.com/engine/reference/commandline/save/
但是如果您运行图像的服务器与您构建的服务器相同,那么......
...而不是只需将标记image
添加到docker-compose
服务中,然后执行docker-compose build
,如@lauri所说,但使用image
{ {1}}将在构建后创建具有该名称的图像,然后您可以使用than docker-compose
。或者执行docker run
因此,如果某些内容发生变化,docker-compose up --build