我的应用程序使用多种技术,比如redis,couchDB,nodejs,... 我从docker hub(例如redis)和其他一些应用程序(例如我的nodejs应用程序)码头回购在我自己的服务器上。 现在,将我的完整应用程序部署到远程系统的最简单方法是什么? 如果我可以只使用一个docker-compose.yml并运行docker-compsoe up -d
,那将是非常好的,但我认为这不起作用,因为我使用自己的docker repo中的图像。那么,我首先必须通过远程系统上的docker pull
来提取所有这些图像,还是可以告诉我的.yml文件从我的回购库中取出?或者还有其他解决方案吗?部署docker应用程序的最简单方法
回答
不要担心私人注册表。 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
谢谢,我会试试看!但是如果我的私人注册表中的图像具有与来自码头中心的图像相同的名称?哪一个会被拉? – Munchkin
您需要用YOUR_REGISTRY_HOST标记您的图片 'docker tag [OPTIONS] IMAGE [:TAG] [REGISTRYHOST /] [USERNAME /] NAME [:TAG]' 之后您可以将图像推送到您自己的注册表中。 进入docker-compose你需要指定完整的图像名称(主机名像 'image:my_registry/image_name' –
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/
- 1. 部署WPF应用程序最简单的方法是什么?
- 2. 在Linux上部署Javascript应用程序的最简单方法
- 3. 部署Meteor应用程序最简单的方法是什么?
- 4. 用docker-compose部署最简单的方法?
- 5. 部署Rails应用程序的简单方法(windows)
- 6. 部署简单的C++应用程序
- 7. 将Web应用程序部署到Apache Tomcat的最简单方法
- 8. 在Windows机器上部署Python/Django应用程序的最简单方法?
- 9. 部署Rails 3应用程序的最简单方法是什么?
- 10. 构建和部署指向我的Web应用程序的iPhone应用程序的最简单方法
- 11. 使用Docker部署NoneJS应用程序
- 12. PHP docker最好的方法。在Docker内部或外部构建应用程序?
- 13. Dokku/Docker部署应用程序失败
- 14. 将简单ASP.NET应用程序部署到托管IIS 6.0服务器的最简单方法
- 15. 无法在Webfaction上部署简单的Flask应用程序
- 16. 无法在Microsoft Azure上部署简单的Node.js应用程序
- 17. 什么是部署rails应用程序的最常用方法
- 18. 在Windows上部署应用程序的GHC API的简单方法
- 19. 将MVC应用程序部署到桌面计算机的简单方法?
- 20. 部署ASP.NET web应用程序的最佳方法
- 21. 如何使用docker-machine部署docker组合应用程序?
- 22. 为用户部署宏的最简单方法?
- 23. 使跨应用程序域调用最简单的方法?
- 24. 在C#应用程序中使用SQL的最简单方法?
- 25. 在一个解决方案中部署多个Web应用程序的最简单方法是什么?
- 26. 将J2SE应用程序与Web应用程序集成的最简单方法
- 27. 这个简单的PHP应用程序的最佳OOP方法?
- 28. 什么是Spring应用程序的最简单的main()方法?
- 29. 重新部署在个人用户gae中运行的gwt应用程序的最简单方法
- 30. 最简单的方法来创建简单的3D ios应用程序
你应该提供有关目标系统的一些相关信息。 –
这是必要的吗?我以为我们使用docker,因为我们不关心主机系统?但是好的:这是一个在Azure上托管的debian虚拟机。 – Munchkin