Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Docker is a tool for creating, running, and managing lightweight virtual machines. These virtual machines make it possible to distribute executable environments with all of the dependencies that can easily be run by others. These Docker images can then be stored and distributed on a Docker registry, a collection of these images. There are a number of open registries on the web, and Synapse hosts a private registry, freely available to our users, which will allow users to create software on a per project basis which that can be easily shared across Synapse. Learn more about Docker and Docker registry.

Synapse users interact with the Synapse Docker registry using the standard Docker client. In Synapse, Docker containers are represented as versioned ‘repositories’ under the ‘Docker’ Docker tab. As with Files and Tables, repositories are organized by project and inherit the access permissions from the parent project. Local Sharing Settings can be applied directly to the repository if permissions should differ from the project.

...

Creating a new Docker image

Let’s begin by creating To create a custom Docker image. Users , you can choose to either modify an existing Docker image or build a Docker image from a Dockerfile. Docker images must be tagged with docker.synapse.org/synapseProjectId/myreponame’myreponame to allow images to be saved.

...

To tag an existing Docker image, users can use the IMAGE ID or the repo name. The IMAGE ID can be found by doing:

...

Build your own image from a Dockerfile When  

When building a Docker image from a Dockerfile, add a -t to the docker build command with the correct Synapse Docker registry tag.

...

Code Block
docker images
#REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
#docker.synapse.org/syn12345/mytestrepo   version1            f8d79ba03c00        6 days ago          126.4 MB
#ubuntu                                     latest              f8d79ba03c00        6 days ago          126.4 MB
#docker.synapse.org/syn12345/my-repo	latest	df323sdf123d	2 days ago	200.3 MB


docker push docker.synapse.org/syn12345/mytestrepo:version1

docker push docker.synapse.org/syn12345/my-repo
Info

Note: There is a 100GB limit per repository image layer.

Note: An alternate way to log in, rather than using a user name and password, is with an OAuth access token. This method is unusual when using the Docker command line client, but it may occur when using a Docker client within a system that authenticates using the OAuth protocol. In this case the ‘user’ user field is ignored and the ‘password’ password field is interpreted as the access token. To perform docker pull operations the OAuth token must have download scope. To perform docker push operations the token must have download and modify scopes.

...

To pull a container from a Synapse Docker repository, you must have download permissions in the sharing settings of the Synapse Docker repository. In Synapse, Docker repositories have names of the form: docker.synapse.org/syn123456syn12345678/repo-name, where syn123456 syn12345678 is the project ID. Navigate to syn123456 syn12345678 to check the project’s sharing settings. To push a new container to a Synapse Docker repository, you must be a Synapse certified user and have edit permissions. To push a change to an existing Synapse Docker repository, you must also have edit permissions. If the container is in the trash can, all operations will fail.

...