Puppet Container Registry

Puppet Container Registry

Puppet Container Registry is a Docker container registry and is available at puppet/puppet-container-registry-enterprise.


To get started with a container registry,

1. Download Puppet Container Registry Enterprise Edition with a docker pull command

2. Download a trial license by signing up at licenses.puppet.com, clicking “Get License”, and clicking “Trial License” for Container Registry. Download the license file and enter it when prompted. 

Docker image storage in puppet container registry,

Puppet Container Registry can store local repository Docker images either in AWS S3 or on a filesystem. If using a filesystem, and you want to keep your Docker images between Puppet Container Registry container runs, you must use a mounted volume to persist the data. Make sure this volume (directory) exists before starting the container and ensure you start the container with the -v option.

To start the Puppet Container Registry container, you must tell it where to store persistent data. Puppet Container Registry works with AWS DynamoDB and MySQL 5.7.23. If you’re trying Puppet Container Registry for the first time, use MySQL - it’s easier to get started and clean up afterward. 


On the first run, Puppet Container Registry will create any necessary tables and indexes.

Use docker run to start the Puppet Container Registry container, using the flags below as appropriate

docker run --rm -d -p 3306:3306 --name=mysql -e 

MYSQL_DATABASE=pcr -e MYSQL_USER=pcr -e 

MYSQL_PASSWORD=password -e 

MYSQL_ROOT_PASSWORD=password mysql/mysql-server:5.7.23


Configure Puppet Container Registry

Navigate to http://localhost:8080 in a browser.


Configure storage

Select File System, then enter “.” (without no quotes) for Storage Root Directory. This is a valid configuration only for evaluation purposes - the data won’t be persisted after the Docker container exits. For persistence, mount a volume into the container and then set that path during configuration.


Create a root account

Enter Email and a password. The first account created is exclusively for container registry administration and cannot create repositories, so this should not be your user account.


Log in and enter a license

Click “Login” and enter the credentials for the root account you just created. You will be prompted to upload a license. Click Upload, select the license file you just downloaded from licenses.puppet.com, click Submit, and then accept the license after reviewing it.

No further configuration is immediately necessary, so log out by clicking the blue logout button in the upper right corner.


Create a user account

Click “Sign Up” and register a normal user you will use to evaluate Puppet Container Registry. Set Username to “testuser” to be consistent with the sample commands below. You will immediately be logged in as that user.


Create your first repository

1. Click “Create Token”, then click the copy link to the right of the login instructions

2. Paste that command into a terminal to log Docker into Puppet Container Registry

3. Click “Create a Local Repository”, name it “hello-world”, and click create 


Push the first container into the repository

docker pull hello-world

docker tag hello-world localhost:8080/testuser/hello-world

docker push localhost:8080/testuser/hello-world



Relevant Blogs:

User creation in puppet  

Puppet facts 

Salt stack event system 

OpenVAS Installation and configuratio

Recent Comments

No comments

Leave a Comment