
Vultr Container Registry is a managed image storage solution that lets you securely store, manage, and distribute Docker container images. It integrates seamlessly with Vultr Kubernetes Engine and centralizes container image management for production workloads.
This guide demonstrates how to migrate container images from a Linode Private Docker Registry to Vultr Container Registry. You will use Docker and Skopeo to perform single-image and bulk transfers between the two registries.
Before you begin, ensure you have:
This section sets up access to your Linode-hosted Docker registry from the migration workstation and verifies available repositories and image tags.
Add your user to the docker group to run Docker commands without sudo.
Apply the group change in your current shell.
Log in to the Linode Docker Registry.
Replace:
<ip-address> with your Linode registry’s IP address.<port> with the exposed registry port (e.g., 5000).<username> with your registry username.If the registry is running behind Kubernetes, use the appropriate Ingress or LoadBalancer endpoint instead.
When prompted, enter your password. If successful, the output displays:
If Docker returns http: server gave HTTP response to HTTPS client, configure it to allow insecure registries.
Open the Docker daemon config.
Add the insecure registry address.
Save and close the file.
Restart Docker to apply the changes.
Re-run the Docker login command.
List all repositories in the Linode registry.
Output:
List tags for a specific image, such as app1/nginx.
Output:
Take note of the images and tags to migrate.
Log in to the Vultr Console and go to Products > Container Registry.
Select the container registry you created. For example, the registry name might be myvultrregistry.
Note down the following from the registry overview:
These values will be used for authentication and image pushes in later steps.
In this section, you will migrate images from your Linode Docker Registry to the Vultr Container Registry using Docker and Skopeo.
Use Docker for simple or small-scale migrations. This method pulls an image from the Linode registry, retags it, and pushes it to the Vultr Container Registry.
Pull an image from your Linode registry:
Replace:
<ip-address>:<port> with the Linode registry address.<repository>/<image>:<tag> with the full image path and tag.Retag the image for the Vultr registry.
Verify that the new tag was applied.
Output:
Log in to the Vultr Container Registry.
Enter your Vultr API key when prompted.
Output:
Push the tagged image to Vultr.
Pull the image from Vultr to confirm availability.
Output:
Run the container to verify the image works.
Verify that the container is running.
Output:
To migrate multiple images, create and run a shell script.
Create the script file with a text editor such as nano.
Add the following content to the file:
Save the file and make it executable.
Run the script.
Output:
After completing the migration, confirm that the images are available in your Vultr Container Registry and function as expected.
Open the Vultr Console and navigate to Container Registry > Repositories. Confirm that your expected repositories and images are present.
Pull a migrated image from the Vultr Container Registry.
Run the container to verify that it starts successfully.
List running containers to confirm the image is up and running:
Output:
This confirms that the container was successfully pulled and launched from the Vultr registry.
You can verify the consistency of image digests between the source and destination registries using Skopeo.
Create a script named verify-images.sh:
Make the script executable.
Run the script.
Output:
This confirms that the image digests are identical in both Linode and Vultr registries, validating the integrity of your migrated images.
After completing the image migration, update all configurations and systems to use your Vultr Container Registry.
Update configuration files
Modify any Dockerfiles, Kubernetes manifests, Helm charts, and Docker Compose files to pull images from your Vultr Container Registry.
Update CI/CD pipelines
Point your CI/CD workflows to the new Vultr registry and update any related image paths or authentication configurations.
Verify authentication
Ensure that all CI/CD tools and orchestration platforms (such as Kubernetes or Nomad) are properly authenticated against your Vultr Container Registry using the correct credentials or secrets.
Monitor deployment behavior
Review logs, container statuses, and deployment outputs to verify that services are pulling and running images from the correct (Vultr) source.
Decommission the Linode registry
Once migration is complete and validated:
Shut down and remove the Linode-hosted Docker registry container.
Clean up old Docker credentials and environment-specific configurations tied to the Linode registry.
If you configured Docker to allow insecure connections to the Linode registry, remove the entry from /etc/docker/daemon.json:
Then restart Docker to apply the changes.
In this guide, you migrated container images from a Linode Private Docker Registry to the Vultr Container Registry using both Docker and Skopeo. You verified the migration, ensured image integrity, and updated your infrastructure to use the Vultr Container Registry for ongoing deployments.
For more information, refer to the official Vultr Container Registry documentation.
0 Comments
Be the first to comment and share your perspective with the community.