Upvotes 0 Share PDF

Images missing in DTR 1.4

Overview

After upgrading to DTR 1.4, the images are not visible in the web GUI, and trying to do a docker push results in a 500 error.

Error Message

Repositories created in the DTR GUI show up, but their corresponding tags don't.

Pushes fail with a 500 error:

$ docker push  dtr.example.com/bob/busybox:latest

The push refers to a repository [dtr.example.com/bob/busybox] (len: 1)

ac6a7980c6c2: Pushed

c00ef186408b: Pushed

latest: digest: sha256:f3b487ea1fcaaf7c9409d8005e66a70f71d98f913dc6b8b4b07592e69938ad16 size: 2742

Diagnostic Steps

  1. Attempt to push an image while logged in with a valid user to see if you get the 500 error:
    docker login dtr.example.com; docker push dtr.example.com/bob/busybox
  2. Use ssh to connect to the DTR host. Look at /usr/local/etc/dtr/storage.yml. With DTR 1.4, it should have rootdirectory: /storage. If it has rootdirectory: /local, then it needs to be updated.
  3. Execute docker exec -it docker_trusted_registry_image_storage_0 find /storage. If the output is blank, then your images need to be moved. On the DTR host, run du -sch /var/local/dtr/image-storage/{local,storage}. If storage is empty, then your images will need to be moved.

Resolution

  1. Stop DTR:

    sudo docker run --rm docker/trusted-registry stop | sudo bash
    
  2. Update your /usr/local/etc/dtr/storage.yml file to set rootdirectory: /storage

  3. Move your existing files in /var/local/dtr/image-storage/ to the correct location:

    mv /var/local/dtr/image-storage/storage /var/local/dtr/image-storage/storage-bak && mv /var/local/dtr/image-storage/local /var/local/dtr/image-storage/storage
    
  4. Start DTR:

    sudo docker run --rm docker/trusted-registry start | sudo bash
    
  5. Verify DTR shows your old tags in the web UI.

  6. Verify you can push without getting a 500 error.