即使标记存在,也不会在docker composer上找到清单

时间:2018-05-27 05:32:12

标签: docker docker-compose

我有这个YML文件

  

搬运工-撰写-testing.yml

使用docker撰写配置:

public static class ThreadSafeRandom
{
    private static Random rnd = new Random();
    private static object _lockObject = new object();

    [ThreadStatic]
    private static Random _random = null;

    public static Random Random
    {
        get
        {
            if (_random == null)
            {
                int seed = 0;
                lock (_lockObject)
                {
                    seed = rnd.Next(0, int.MaxValue);
                }
                _random = new Random(seed);
            }
            return _random;
        }
    }
}

public static int PerformAddition(int value)
{
    return value + ThreadSafeRandom.Random.Next(0, 100);
}

通常,我使用此命令来应用上述配置:

  

export VERSION = 578d8de&& envsubst< docker-compose-testing.yml | docker-compose -f - pull&& envsubst< docker-compose-testing.yml | docker-compose -f - -p PROJECT_NAME up -d --no-build --scale worker = 5

现在,当我执行此命令(上面)时,控制台显示此错误:

  

拉动翻译器(MY_SERVER_IP:5000 /镜头/翻译:578d8de)......   错误:显示MY_SERVER_IP:5000 /镜头/翻译:未找到578d8de

以下一个类似问题的回答表明标签不存在:

Error response from daemon: manifest for ibmblockchain/fabric-peer:latest not found

但是当我用命令列出图像时:

  

码头图片| grep 578d8de

控制台显示此输出,证明该标记存在:

version: '3'                                                
services:                                                   
  nginx_testing:                                            
    image: MY_SERVER_IP:5000/lens/nginx_testing:${VERSION}  
    volumes:                                                
      - certs:/etc/letsencrypt                              
      - certs-data:/data/letsencrypt                        
    ports:                                                  
      - 80:80                                               
      - 443:443                                             
    depends_on:                                             
      - ws_server                                           
      - translator                                          
      - auth                                                
  ws_server:                                                
    image: MY_SERVER_IP:5000/lens/ws_server:${VERSION}      
  worker:                                                   
    image: MY_SERVER_IP:5000/lens/worker:${VERSION}         
    depends_on:                                             
      - ws_server                                           
  translator:                                               
    image: MY_SERVER_IP:5000/lens/translator:${VERSION}     
  auth:                                                     
    image: MY_SERVER_IP:5000/lens/auth:${VERSION}           
    volumes:                                                
      - auth-data:/usr/src/app/data                         

volumes:                                                    
  certs:                                                    
  certs-data:                                               
  auth-data:                                                

一些额外的细节:

  1. 服务器(MY_SERVER_IP)有一个停靠在5000端口上的docker注册表。

  2. 带有版本标签578d8de的图像上传到服务器而不是注册表,但使用" docker save"和" scp" dev机器上的命令,以及#34; docker load"在服务器上。

  3. 知道为什么会出现这种错误吗?

1 个答案:

答案 0 :(得分:0)

This error is happenning when I send image with scp command to server and load the image to docker.

How I don't use docker push to the registry, the image don't exists in registry.

So when docker-compose pull execute, don't find image on registry and dispatch the error.