部署docker应用程序的最简单方法

部署docker应用程序的最简单方法,docker,docker-compose,docker-registry,Docker,Docker Compose,Docker Registry,我的应用程序使用了多种技术,如redis、couchDB、nodejs等。。。 其中一些是我从docker hub(如redis)获取的,而另一些(如我的nodejs应用程序)则托管在我自己服务器上的docker repo中。 现在,将完整应用程序部署到远程系统的最简单方法是什么? 如果我可以只使用一个docker-compose.yml并运行docker compsoe-up-d,那就太好了,但我认为这行不通,因为我使用的是我自己的docker repo中的图像。那么,我是否必须首先通过远程系

我的应用程序使用了多种技术,如redis、couchDB、nodejs等。。。 其中一些是我从docker hub(如redis)获取的,而另一些(如我的nodejs应用程序)则托管在我自己服务器上的docker repo中。 现在,将完整应用程序部署到远程系统的最简单方法是什么?
如果我可以只使用一个docker-compose.yml并运行
docker compsoe-up-d
,那就太好了,但我认为这行不通,因为我使用的是我自己的docker repo中的图像。那么,我是否必须首先通过远程系统上的
docker pull
提取所有这些图像,或者是否可以告诉我的.yml文件从我的repo中提取?或者还有其他解决方案吗?

不要担心私有注册表。docker compose可以自动从私有存储库中提取图像

在进行私有重新注册之前,您需要进行身份验证,然后才能进行拉取。在
$docker compose up

注意需要为您自己的图像指定正确的名称。
您需要使用\u注册表\u主机标记您的图像

docker tag[OPTIONS]IMAGE[:tag][REGISTRYHOST/][USERNAME/]NAME[:tag]

之后,您可以将图像推送到自己的注册表中。在docker compose中,您需要指定完整的映像名,主机名如下


image:my\u registry/image\u name

不用担心私有注册表。docker compose可以自动从私有存储库中提取图像

在进行私有重新注册之前,您需要进行身份验证,然后才能进行拉取。在
$docker compose up

注意需要为您自己的图像指定正确的名称。
您需要使用\u注册表\u主机标记您的图像

docker tag[OPTIONS]IMAGE[:tag][REGISTRYHOST/][USERNAME/]NAME[:tag]

之后,您可以将图像推送到自己的注册表中。在docker compose中,您需要指定完整的映像名,主机名如下


image:my\u registry/image\u name
布哈罗夫提供了正确的步骤。对于我自己,我在我的CI设置中就这个主题问了一个类似的问题。我制作了一些文档,希望与大家分享

  • 启动注册表容器

    run-d-p 127.0.0.1:5000:5000--始终重新启动-v registry:/var/lib/registry--name registry-e registry\u STORAGE\u DELETE\u ENABLED=true registry:2.4

  • 为私有注册表准备本地映像

    docker标记localhost:5000/

  • 将映像添加到专用注册表

    docker推送本地主机:5000/

  • 从专用注册表中提取图像

    docker pull localhost:5000/

  • 从图像中删除标记

    docker rmi localhost:5000/gdal:1

  • 列出所有图像

    curl-X GEThttp://localhost:5000/v2/_catalog

  • 列出列出的图像的所有标记

    curl-X GEThttp://localhost:5000/v2//tags/list (Auflistung aller标签库)

  • 读取所有清单文件

    curl-X GEThttp://localhost:5000/v2//manifests/ -H“接受:应用程序/vnd.docker.distribution.manifest.v2+json”

  • 删除专用注册表中的图像

    apt-get-update&&apt-get-install-y curl jq

    curlhttps://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py |tee/usr/local/bin/delete\u docker\u registry\u image>/dev/null chmod a+x/usr/local/bin/delete\u docker\u registry\u image

    export REGISTRY\u DATA\u DIR=/var/lib/REGISTRY/docker/REGISTRY/v2

    delete\u docker\u registry\u image--image nginx:stable alpine–dry run

    delete\u docker\u registry\u image——image nginx:stable alpine

有关通过web访问专用注册表的更多信息:
https://docs.docker.com/registry/deploying/#/running-a域注册表

有关专用docker注册表的一般信息:
https://docs.docker.com/registry/deploying/


布哈罗夫提供了正确的步骤。对于我自己,我在我的CI设置中就这个主题问了一个类似的问题。我制作了一些文档,希望与大家分享

  • 启动注册表容器

    run-d-p 127.0.0.1:5000:5000--始终重新启动-v registry:/var/lib/registry--name registry-e registry\u STORAGE\u DELETE\u ENABLED=true registry:2.4

  • 为私有注册表准备本地映像

    docker标记localhost:5000/

  • 将映像添加到专用注册表

    docker推送本地主机:5000/

  • 从专用注册表中提取图像

    docker pull localhost:5000/

  • 从图像中删除标记

    docker rmi localhost:5000/gdal:1

  • 列出所有图像

    curl-X GEThttp://localhost:5000/v2/_catalog

  • 列出列出的图像的所有标记

    curl-X GEThttp://localhost:5000/v2//tags/list (Auflistung aller标签库)

  • 读取所有清单文件

    curl-X GEThttp://localhost:5000/v2//manifests/ -H“接受:应用程序/vnd.docker.distribution.manifest.v2+json”

  • 删除专用注册表中的图像

    apt-get-update&&apt-get-install-y curl jq

    curlhttps://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py |tee/usr/local/bin/delete\u docker\u registry\u image>/dev/null chmod a+x/usr/local/bin/delete\u docker\u registry\u image

    export REGISTRY\u DATA\u DIR=/var/lib/REGISTRY/docker/REGISTRY/v2

    delete\u docker\u registry\u image--image nginx:stable alpine–dry run

    删除_