部署docker应用程序最简单的方法
我的应用程序使用多种技术,如redis,couchDB,nodejs,…其中一些我从docker集线器(例如redis)和其他一些(例如我的nodejs应用程序)托pipe在我自己的服务器上的docker仓库中。 现在,将我的完整应用程序部署到远程系统的最简单方法是什么? 如果我可以使用一个docker-compose.yml并运行docker-compsoe up -d
,那将是非常好的,但是我认为这是行不通的,因为我使用我自己的docker repo中的图片。 那么,我首先必须通过docker pull
在远程系统上拉出所有这些图像还是可以告诉我的.yml文件从我的回购拉? 还是有其他解决scheme?
不要担心私人registry。 docker-compose可以自动从私人存储库中提取图像。
在拉动之前,你需要在私人分开之前authentication。 在$docker-compose up
之前input$docker login <private_repository>
注意! 有必要给你自己的图像一个正确的名字。 您需要使用YOUR_REGISTRY_HOST标记您的图片
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
并在它之后,您可以将图像推送到您自己的registry。 进入docker-compose,你需要指定像主机名一样的完整映像名称
image: my_registry/image_name
布哈罗夫提供了正确的步骤。 对于我自己,我问了一个关于这个话题的类似的问题,我的CI设置。 我做了一些我想分享的文档。
-
启动registry容器
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
-
准备您的本地图像的私人registry。
docker tag <local image> localhost:5000/<local image>
-
将图像添加到私人registry。
docker push localhost:5000/<local image>
-
从私有registry中提取图像。
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"
-
删除私人registry中的图像。
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
有关通过Web访问私有registry的更多信息:
https://docs.docker.com/registry/deploying/#/running-a-domain-registry
:https://docs.docker.com/registry/deploying/#/running-a-domain-registry
有关私人dockerregistry的一般信息:https://docs.docker.com/registry/deploying/
://docs.docker.com/registry/deploying/