2016-08-24 96 views
0

我的应用程序使用多种技术,比如redis,couchDB,nodejs,... 我从docker hub(例如redis)和其他一些应用程序(例如我的nodejs应用程序)码头回购在我自己的服务器上。 现在,将我的完整应用程序部署到远程系统的最简单方法是什么? 如果我可以只使用一个docker-compose.yml并运行docker-compsoe up -d,那将是非常好的,但我认为这不起作用,因为我使用自己的docker repo中的图像。那么,我首先必须通过远程系统上的docker pull来提取所有这些图像,还是可以告诉我的.yml文件从我的回购库中取出?或者还有其他解决方案吗?部署docker应用程序的最简单方法

+0

你应该提供有关目标系统的一些相关信息。 –

+1

这是必要的吗?我以为我们使用docker,因为我们不关心主机系统?但是好的:这是一个在Azure上托管的debian虚拟机。 – Munchkin

回答

3

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

在拉动之前,您需要在进行私人分区前进行身份验证。型号$docker login <private_repository>之前$docker-compose up

注意!有必要为自己的图片提供正确的名称。 您需要YOUR_REGISTRY_HOST

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

标记你的图像和之后,你可以把图像保存到自己的注册表。成搬运工,谱写你需要与主机名指定完整的图像名称,如

image: my_registry/image_name

+0

谢谢,我会试试看!但是如果我的私人注册表中的图像具有与来自码头中心的图像相同的名称?哪一个会被拉? – Munchkin

+1

您需要用YOUR_REGISTRY_HOST标记您的图片 'docker tag [OPTIONS] IMAGE [:TAG] [REGISTRYHOST /] [USERNAME /] NAME [:TAG]' 之后您可以将图像推送到您自己的注册表中。 进入docker-compose你需要指定完整的图像名称(主机名像 'image:my_registry/image_name' –

2

Bukharov提供了正确的步骤。对于我自己,我为我的CI设置问了一个关于该主题的类似问题。我做了一些我想分享的文档。

  • 启动注册表集装箱

    run -d -p 127.0.0.1:5000:5000 --restart always -v registry:/var/lib/registry --name registry -e REGISTRY_STORAGE_DELETE_ENABLED=true registry:2.4

  • 准备好您的本地图片为私有注册。

    docker tag <local image> localhost:5000/<local image>

  • 的图像添加到私有注册。

    docker push localhost:5000/<local image>

  • 私营注册表拉的图像。

    docker pull localhost:5000/<local image>

  • 从图像中删除的标签。

    docker rmi localhost:5000/gdal:1

  • 列表中的所有图像。

    curl -X GET http://localhost:5000/v2/_catalog

  • 列出所有标签所列出的图像。

    curl -X GET http://localhost:5000/v2/<repository>/tags/list (Auflistung aller Tags zu einem repository)

  • 阅读所有清单文件。

    curl -X GET http://localhost:5000/v2/<repository>/manifests/<tag oder digest> -H "Accept: application/vnd.docker.distribution.manifest.v2+json"

  • 私人注册表删除图像。

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

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

    export REGISTRY_DATA_DIR=/var/lib/registry/docker/registry/v2

    delete_docker_registry_image --image nginx:stable-alpine –dry-run

    delete_docker_registry_image --image nginx:stable-alpine

欲了解更多信息,访问私有注册翻过网站:https://docs.docker.com/registry/deploying/#/running-a-domain-registry
关于私人dockre登记基本信息:https://docs.docker.com/registry/deploying/

相关问题