Portus is an authorization server and a user interface for the next generation of the Docker registry. Portus targets version 2 of the Docker Registry API. The minimum required version of Registry is 2.1, which is the first version supporting soft deletes of blobs.
If you are looking out for Web UI for your private Docker Registry, I would recommend to test-drive a tool called “Portus” powered by SUSE Team. Portus provides a useful and powerful UI on top of your registry. It is an open source authorization service and a user interface for the next generation of the Docker registry. Portus targets version 2 of the Docker Registry API.
Platform | Number of Instance | Reading Time |
---|---|---|
Ubuntu 18.04 | 1 | 5 min |
- Install Docker
curl -sSL https://get.docker.com/ | sh
curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker run -d \
-p 2000:2000 \
--restart=always \
--name registry \
-v /mnt/registry:/var/lib/registry \
registry:2
git clone https://github.com/SUSE/Portus
cd Portus
docker-compose up -d
docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------
portus_background_1 bundle exec rails runner / Up 3000/tcp
...
portus_clair_1 /clair -config /clair.yml Up 0.0.0.0:6060->6060/tcp,
0.0.0.0:6061->6061/tcp
portus_db_1 /docker-entrypoint.sh mysq Up 3306/tcp
...
portus_portus_1 bundle exec rails runner / Up 0.0.0.0:3000->3000/tcp
...
portus_postgres_1 docker-entrypoint.sh Up 5432/tcp
postgres
portus_registry_1 /entrypoint.sh /etc/docker Up 0.0.0.0:5000->5000/tcp,
... 0.0.0.0:5001->5001/tcp
portus_webpack_1 bash /srv/Portus/examples/ Up
...
Once you login to Portus, you will need to provide Docker Registry details:
- Name
- <Your Host IP or Hostname>: 2000
Please remember that Portus is designed to handle only a single private Registry.
Say, you have 4-5 teams inside your organization namely,
- DB Team
- HPC Team
- Solutions Team
- Advisor Team
- Virtualization Team
First, create user who would be point of contact for each of these teams who will be pushing their Docker Image. Then, create team names accordingly.