我可以直接部署生成的 docker 图像而不将其推送到 DockerHub 吗?

Can I directly deploy generated docker image without pushing it to DockerHub?

我不想将 docker 构建映像推送到 DockerHub。有什么方法可以直接将 docker 图像从 CircleCI 部署到 AWS/vps/vultr 而无需将其推送到 DockerHub?

您可以设置自己的注册表:https://docs.docker.com/registry/deploying/

编辑:正如 i.bondarenko 所说,docker save/load 是满足您需求的更好命令。

我使用 docker save/load 命令:

# save image to tar locally
docker save -o ./image.tar $IMAGEID
# copy to target host
scp ./image.tar user@host:~/
# load into target docker repo
ssh user@host "docker load -i ~/image.tar"
# tag the loaded target image
ssh user@host "docker tag $LOADED_IMAGE_ID myimage:latest"

PS: LOADED_IMAGE_ID 可以通过以下方式检索:

REMOTE_IMAGE_ID=`ssh user@host"docker load -i ~/image.tar" | grep -o "sha256:.*"`

更新: 您可以 gzip 输出以使其更小。 (不要忘记在加载前解压缩图像存档)

docker save $IMAGEID | gzip > image.tar.gz

免责声明:我是 Dogger 的作者。

我在这里写了一篇博客 post,它允许:https://medium.com/@mathiaslykkegaardlorenzen/hosting-a-docker-app-without-pushing-an-image-d4503de37b89