Warning: Quay requires docker version 0.6.2 or higher to work

User Guide

Signing into Quay Setup

To setup your Docker client for pushing to Quay, login with your credentials:

$ sudo docker login quay.io

Login against server at https://quay.io/v1/
Username: myusername
Password: mypassword
Email: my@email.com

Pushing a repository to Quay Requires Write Access

In order to push a repository to Quay, it must be tagged with the quay.io domain and the namespace under which it will live:

sudo docker tag 0u123imageid quay.io/username/repo_name

Once tagged, the repository can be pushed to Quay:

sudo docker push quay.io/username/repo_name

Pulling a repository from Quay

Note: Private repositories require you to be logged in or the pull will fail. See above for how to sign into Quay if you have never done so before.
To pull a repository from Quay, run the following command:

sudo docker pull quay.io/username/repo_name

Granting and managing permissions to users Requires Admin Access

Quay allows a repository to be shared any number of users and to grant those users any level of permissions for a repository
  • Permissions for a repository can be granted and managed in the repository's admin interface
  • Adding a user: Type that user's username in the "Add New User..." field, and select the user
  • Changing permissions: A user's permissions (read, read/write or admin) can be changed by clicking the field to the right of the user
  • Removing a user: A user can be removed from the list by clicking the X and then clicking Delete

Using robot accounts Requires Admin Access

There are many circumstances where permissions for repositories need to be shared across those repositories (continuous integration, etc). To support this case, Quay allows the use of robot accounts which can be created in the user/organization's admin view and can be shared by multiple repositories that are owned by that user or organization.
  • Robot accounts can be managed in the user or organization admin's interface
  • Adding a robot account: Click "Create Robot Account" and enter a name for the account. The username will become namespace+accountname where "namespace" is the name of the user or organiaztion.
  • Setting permissions: Permissions can be granted to a robot account in a repository by adding that account like any other user or team.
  • Deleting a robot account: A robot account can be deleted by clicking the X and then clicking Delete
  • Using a robot account: To use the robot account, the following credentials can be used:
    Username
    namespace+accountname (Example: mycompany+deploy)
    Password
    (token value can be found by clicking on the robot account in the admin panel)
    Email
    This value is ignored, any value may be used.

Using access tokens in place of users Requires Admin Access

For per-repository token authentication, Quay allows the use of access tokens which can be created on a repository and have read and/or write permissions, without any passwords.
  • Tokens can be managed in the repository's admin interface
  • Adding a token: Enter a user-readable description in the "New token description" field
  • Changing permissions: A token's permissions (read or read/write) can be changed by clicking the field to the right of the token
  • Deleting a token: A token can be deleted by clicking the X and then clicking Delete
  • Using a token: To use the token, the following credentials can be used:
    Username
    $token
    Password
    (token value can be found by clicking on the token)
    Email
    This value is ignored, any value may be used.

Using push webhooks Requires Admin Access

A repository can have one or more push webhooks setup, which will be invoked whenever a successful push occurs. Webhooks can be managed from the repository's admin interface.

A web hook will be invoked as an HTTP POST to the specified URL, with a JSON body describing the push:

{
  "pushed_image_count": 2,
  "name": "ubuntu",
  "repository":"devtable/ubuntu",
  "docker_url": "quay.io/devtable/ubuntu",
  "updated_tags": {
    "latest": "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc"
  },
  "namespace": "devtable",
  "visibility": "private",
  "homepage": "https://quay.io/repository/devtable/ubuntu"
}