x
Docker Tar solves a fundamental problem: downloading Docker images without having Docker installed. Whether you're on a restricted network, working on a machine without Docker, or need to distribute images offline, Docker Tar provides a simple web interface to download any public Docker image as a tar file.
- π Smart Search - Search through millions of Docker Hub images with intelligent autocomplete
- π·οΈ Complete Tag Support - Browse and select from all available image tags
- β‘ Instant Downloads - Download and stream images directly to your browser as tar files
- π― No Installation Required - Works entirely through your web browser
- π Secure & Clean - Images are automatically cleaned up after download
- π± Responsive Design - Works seamlessly on desktop and mobile devices
Search millions of Docker Hub images with autocomplete β logos, verified/official badges, pull counts and last-updated times
Browse every tag for an image, with fast filtering and incremental loading of large tag lists
Real-time feedback while the image is pulled and streamed to your browser as a tar
Your tar file is ready for use
Docker Tar is built with modern web technologies for optimal performance and reliability:
- React 18 - Modern, responsive user interface
- Turnstone - Intelligent search with autocomplete
- Tailwind CSS - Clean, professional styling
- Ant Design - Polished UI components
- FastAPI - High-performance Python web framework
- Docker SDK - Direct integration with Docker engine
- Nginx - Reverse proxy for the the DockerHub API (Crucial for bypassing CORS), and also for the backend and frontend.
- Python 3.8+
- Node.js 16+
- Docker Engine
- Nginx (for production)
The fastest way to run the whole stack (backend + frontend + nginx) locally:
- Make sure Docker Desktop is installed and Homebrew is available.
- Double-click
run-local.commandin Finder (or run./run-local.command).
It automatically:
- installs nginx via Homebrew on first run (if missing),
- creates a Python venv and installs backend dependencies,
- installs frontend dependencies (if needed),
- writes
front-end/.env.localpointing the app at the local nginx, - starts the backend (
:8080), frontend (:3000) and nginx (:8081), - opens the app at http://localhost:8081.
Press Ctrl+C in the window, or double-click stop-local.command, to stop
everything. Logs and generated files live in .local-run/ (gitignored). nginx
runs on port 8081 (not 80) so no sudo/password is ever required; change
NGINX_PORT at the top of run-local.command if that port is taken.
-
Clone the repository
git clone https://github.com/yourusername/docker-tar.git cd docker-tar -
Start the backend
cd back-end pip install -r requirements.txt python app.py- you might need to start it within wsl, if running docker desktop on windows with wsl.
-
Start the frontend
cd front-end npm install npm startConfiguring URLs (run locally): All external URLs live in
front-end/src/config.jsand are driven by environment variables. To point the app at a local backend instead of production, copy the template and edit it:cp .env.example .env.local # then set, e.g.: # REACT_APP_BACKEND_URL=http://localhost:8080 # REACT_APP_DOCKERHUB_PROXY_URL=http://localhost:8080
Restart
npm startafter changing env values. Unset values fall back to the production host (https://dockertar.zapto.org). -
Open your browser
http://localhost:3000
For production deployment, configure Nginx as a reverse proxy to the backend, Dockerhub API and frontend services.
GET /install/image-tar?image_name={name}&image_tag={tag}Parameters:
image_name(required) - Docker image name (e.g.,nginx,ubuntu)image_tag(required) - Image tag (may be empty)
Response:
- Content-Type:
application/x-tar - Content-Disposition:
attachment; filename="{image_name}.tar" - Body: Streaming tar file data
Example:
curl -O "https://dockertar.zapto.org/install?image_name=nginx&image_tag=alpine"docker-tar/
βββ back-end/ # FastAPI server
β βββ app.py # Main application
β βββ requirements.txt
βββ front-end/ # React application
β βββ src/
β β βββ App.js # Main component
β β βββ components/
β βββ package.json
βββ CLAUDE.md # Technical documentation
Frontend:
npm start # Development server
npm run build # Production build
npm run build:css # Build Tailwind CSSBackend:
python app.py # Start FastAPI serverWe welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow existing code style and conventions
- Add tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting
This project is licensed under the MIT License - see the LICENSE file for details.
- Live Production Website: dockertar.zapto.org
- Issues: GitHub Issues
- Feedback: Google Form
Made with β€οΈ for the Docker community
β Star this repo if you find it useful!