Overview
This AMI deploys Docker Registry using Docker Compose with automated configuration for a secure and seamless container image storage and distribution setup. Designed for production environments, it includes: Automatic Docker Registry container deployment using Docker Compose First-time guided configuration for custom domain, DNS validation, and SSL setup via Certbot Dual-layer authentication combining Apache Basic Auth and Registry htpasswd for enhanced security Auto-generated strong admin credentials stored securely with bcrypt hashing Persistent data volumes to ensure image durability and data retention Apache reverse proxy for HTTPS-secured access with comprehensive security headers Built-in failsafe installer that ensures setup completion successfully Image deletion support enabled for registry cleanup operations Zero-configuration startup with automated retry mechanism
Highlights
- Production-ready & Secure: Dual-layer authentication (Apache + Registry htpasswd) with SSL-enabled access, automated domain + certificate provisioning via Let's Encrypt, and bcrypt password hashing for enterprise-grade security
- Fully Automated Setup: Failsafe installer with DNS validation, automatic retry mechanism, and guided configuration ensures Docker Registry deployment always completes successfully without manual intervention
- Enterprise-Ready Storage: Persistent volumes for image durability, image deletion support, secure credential management, and Apache reverse proxy with HTTPS encryption for reliable container image distribution
Details
Introducing multi-product solutions
You can now purchase comprehensive solutions tailored to use cases and industries.
Features and programs
Financing for AWS Marketplace purchases
Pricing
- ...
Dimension | Cost/hour |
|---|---|
t2.medium Recommended | $0.05 |
t3.micro | $0.05 |
x2iedn.8xlarge | $0.05 |
m6i.8xlarge | $0.05 |
r6i.12xlarge | $0.05 |
m7i.metal-48xl | $0.05 |
u-6tb1.56xlarge | $0.05 |
m1.xlarge | $0.05 |
hpc7a.12xlarge | $0.05 |
r6in.16xlarge | $0.05 |
Vendor refund policy
For any questions or concerns, please contact: Perimattic.com Email: aws-support@perimattic.com
How can we make this page better?
Legal
Vendor terms and conditions
Content disclaimer
Delivery details
64-bit (x86) Amazon Machine Image (AMI)
Amazon Machine Image (AMI)
An AMI is a virtual image that provides the information required to launch an instance. Amazon EC2 (Elastic Compute Cloud) instances are virtual servers on which you can run your applications and workloads, offering varying combinations of CPU, memory, storage, and networking resources. You can launch as many instances from as many different AMIs as you need.
Version release notes
- Added automated first-boot provisioning using failsafe.sh to ensure successful installation.
- Implemented secure Docker Registry setup with dual-layer authentication (Apache + htpasswd).
- Auto-generated strong admin credentials stored securely with bcrypt hashing.
- Added mandatory domain validation and HTTPS configuration for secure remote access.
- Fully automated SSL certificate issuing using Certbot + Apache integration.
- Provided Docker Compose-based deployment for consistent, reproducible runtime environments.
- Configured persistent data storage using mounted Docker volumes (/opt/app/data).
- Added auto-restart policy for Docker Registry container to improve reliability.
- Improved DNS validation logic to avoid SSL failures during domain mapping.
- Integrated self-healing setup that retries scripts on failure to guarantee successful provisioning.
Additional details
Usage instructions
- Launch an Instance
From AWS Marketplace, click Continue to Subscribe, then Continue to Configuration, and launch the AMI.
- Choose the Recommended Instance Type
Select t2.medium or higher for a smooth Docker Registry deployment. Container registry workloads benefit from adequate CPU/RAM - larger instance types improve image push/pull performance and concurrent operations.
- Configure Security Group
Allow inbound traffic on the following ports:
- 22 (SSH) - For secure terminal access
- 80 (HTTP) - Required temporarily for SSL validation
- 443 (HTTPS) - Secure access to Docker Registry via domain
- Connect to the Instance
Use SSH to connect: ssh -i <your-key.pem> ubuntu@<public-ip>
- First-Boot Setup (Guided)
On first login, an interactive guided setup will automatically start:
- Detects public IP
- Prompts for domain name mapping to Docker Registry
- Validates DNS A-record propagation
- Asks for admin email for SSL certificate registration
- Generates a strong secure admin password (bcrypt-hashed)
- Stores credentials in /opt/app/.env and /opt/app/admin_password.txt
- Creates Apache reverse proxy configuration with dual authentication
- Requests & installs a free Let's Encrypt SSL certificate
- Deploys Docker Registry using Docker Compose
- Displays access URL & login credentials after completion
- DNS Configuration Required
Before (or during) setup, add this DNS A-record:
registry.yourdomain.com <your-instance-public-IP>
Setup continues only when major resolvers confirm valid mapping.
- Automatic SSL Setup
After DNS validation:
- Enables HTTPS access to Docker Registry
- Auto-installs a valid TLS certificate
- Redirects HTTP to HTTPS for security
- Configures security headers (HSTS, X-Frame-Options, etc.)
- Verify Registry & Remove Port 5000
Test from your local machine: docker login https://registry.yourdomain.com Username: admin Password: <generated-password>
If login succeeds, your registry is working via your domain.
IMPORTANT SECURITY STEP: Once confirmed working properly on domain, remove port 5000 from your security group: AWS Console > EC2 > Security Groups > Edit Inbound Rules > Delete port 5000 (if present) > Save
The registry runs on localhost:5000 and is accessed through Apache on port 443. Removing port 5000 ensures secure HTTPS-only access.
- Access & Retrieve Credentials
Credentials saved in: sudo cat /opt/app/admin_password.txt sudo cat /opt/app/.env
Default user: Username: admin Password: <generated-password>
- Push an Image
docker tag myapp:latest registry.yourdomain.com/myapp:latest docker push registry.yourdomain.com/myapp:latest
- Pull an Image
docker pull registry.yourdomain.com/myapp:latest
- Managing the Registry
View containers: sudo docker ps View logs: sudo docker logs registry Restart: cd /opt/app && sudo docker-compose restart Stop: cd /opt/app && sudo docker-compose down Start: cd /opt/app && sudo docker-compose up -d
Persistent volumes preserve images across restarts.
- Authentication Details
This registry uses DUAL-LAYER authentication:
- Apache Basic Auth (first layer)
- Docker Registry htpasswd (second layer)
Both layers use the same admin credentials.
- Data Persistence
Images stored in: /opt/app/data Authentication files: /opt/app/auth/.htpasswd Mounted as Docker volumes ensuring persistence.
Thank you for subscribing. Your instance is ready to go!
Need Support or Customization? Whether you're facing setup issues or need custom features, Perimattic's expert team is here to help:
Email us: aws-support@perimattic.com WhatsApp: +91-92142 66896 Learn more: <www.perimattic.com >
We offer: Free setup assistance Custom development & integrations Infrastructure consulting Automation & AI solutions With 13+ years of experience serving global clients, we ensure your deployment runs smoothly and scales with your needs.
Let's build something great together!
Support
Vendor support
For any questions or concerns, please contact: Perimattic.com Email: aws-support@perimattic.com
AWS infrastructure support
AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.