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.
Deleting a tag Requires Admin Access
A specific tag and all its images can be deleted by right clicking on the tag in the repository history tree and choosing "Delete Tag". This will delete the tag and any images unique to it. Images will not be deleted until all tags sharing them are deleted.
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 webhook 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"
}