部署 docker 应用程序的最简单方法
Easiest way to deploy docker application
我的应用程序使用了多种技术,例如 redis、couchDB、nodejs ……
其中一些是我从 docker 集线器(例如 redis)获取的,还有一些(例如我的 nodejs 应用程序)托管在我自己服务器上的 docker 存储库中。
现在将我的完整应用程序部署到远程系统的最简单方法是什么?
如果我可以只使用一个 docker-compose.yml 和 运行 docker-compsoe up -d
就好了,但我认为这行不通,因为我使用自己的图像 docker回购。那么我首先必须通过远程系统上的 docker pull
拉取所有这些图像,还是可以告诉我的 .yml 文件从我的存储库中拉取?或者还有其他解决办法吗?
不用担心私有注册表。 docker-compose 可以自动从私有仓库拉取镜像。
拉取之前,您需要先在私有注册表上进行身份验证。在 $docker-compose up
之前键入 $docker login <private_repository>
note! 需要给自己的图片取一个正确的名字。
您需要使用 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
For further information to access the private registry across the web: https://docs.docker.com/registry/deploying/#/running-a-domain-registry
General information about a private docker registry: https://docs.docker.com/registry/deploying/
我的应用程序使用了多种技术,例如 redis、couchDB、nodejs ……
其中一些是我从 docker 集线器(例如 redis)获取的,还有一些(例如我的 nodejs 应用程序)托管在我自己服务器上的 docker 存储库中。
现在将我的完整应用程序部署到远程系统的最简单方法是什么?
如果我可以只使用一个 docker-compose.yml 和 运行 docker-compsoe up -d
就好了,但我认为这行不通,因为我使用自己的图像 docker回购。那么我首先必须通过远程系统上的 docker pull
拉取所有这些图像,还是可以告诉我的 .yml 文件从我的存储库中拉取?或者还有其他解决办法吗?
不用担心私有注册表。 docker-compose 可以自动从私有仓库拉取镜像。
拉取之前,您需要先在私有注册表上进行身份验证。在 $docker-compose up
$docker login <private_repository>
note! 需要给自己的图片取一个正确的名字。 您需要使用 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
For further information to access the private registry across the web:
https://docs.docker.com/registry/deploying/#/running-a-domain-registry
General information about a private docker registry:https://docs.docker.com/registry/deploying/