首页 > 解决方案 > 我可以将本地构建部署到虚拟机中的 docker swarm 吗?

问题描述

我正在学习 Docker 并尝试遵循 Docker 教程,并且在此处的第 4 步。

基本上在这一步中,我们为 docker swarm 创建 2 个 VM:1 个作为 swarm manager,1 个作为 swarm worker。

我认为它将 docker-hub 推送图像拉到虚拟机以使服务在群中工作。问题是我没有将构建的图像推送到 docker hub。

我的问题是,我可以使用本地构建部署到 swarm VM 吗?

我试图image将示例更改docker-compose.ymlbuild这样:

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    # image: friendlyhello
    build: .
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "4000:80"
    networks:
      - webnet
networks:
  webnet:

它当然不起作用,这就是为什么我问是否有办法做到这一点?

标签: docker

解决方案


您可以在 vm 或本地计算机上创建本地注册表,并从本地 repo 推/拉图像

docker run -d -p 5000:5000 --restart=always --name registry registry:2

然后使用命名/标记您的图像

localhost:5000/Image_Name:Tag

然后使用推送图像

docker push localhost:5000/Image_Name:Tag

这将允许您将图像保存在您的 swarm 可以使用的本地注册表中,而无需推送到 dockerhub


推荐阅读