Portainer – Docker Container Management UI

4.7 Stars
Version 2.19.4
300 MB
Portainer – Docker Container Management UI

Manage Docker Containers Visually with Portainer

Portainer simplifies Docker and Kubernetes container management through an intuitive web-based interface that makes complex containerized environments accessible to teams of all skill levels. Rather than memorizing Docker CLI commands or writing YAML manifests from scratch, administrators and developers can deploy, monitor, and manage containers through a clean graphical interface that still provides access to advanced configurations when needed.

The platform has evolved from a simple Docker UI into a comprehensive container management solution that supports Docker Standalone, Docker Swarm, Kubernetes, and Azure Container Instances. This flexibility, combined with role-based access control and audit logging, makes Portainer suitable for everything from personal home labs to enterprise production environments.

Installation

Docker Installation

Create Volume and Deploy:

docker volume create portainer_data

docker run -d -p 8000:8000 -p 9443:9443 \
  --name portainer --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

Access at https://localhost:9443

Docker Compose

# docker-compose.yml
version: '3.8'
services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "9443:9443"
      - "8000:8000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

volumes:
  portainer_data:

Deploy:

docker-compose up -d

Kubernetes Installation

# Using Helm
helm repo add portainer https://portainer.github.io/k8s/
helm repo update

helm upgrade --install --create-namespace -n portainer portainer portainer/portainer \
  --set service.type=LoadBalancer

Initial Setup

First Login

1. Navigate to https://localhost:9443
2. Create admin username and password
3. Accept EULA
4. Connect to your Docker environment

Environment Types

- Docker Standalone: Direct socket connection
- Docker Swarm: Cluster management
- Kubernetes: K8s cluster management
- Edge Agent: Remote environments
- Azure ACI: Azure containers

Container Management

Deploy New Container

Containers > Add Container

Configure:
- Name: my-container
- Image: nginx:latest
- Port mapping: 8080:80
- Volume mounts
- Environment variables
- Resource limits

Click "Deploy the container"

Container Operations

Actions available:
- Start/Stop/Restart
- Kill/Remove
- Pause/Unpause
- Duplicate
- Recreate
- Console access
- Logs viewing
- Inspect

Console Access

Containers > [Container] > Console

# Opens web-based terminal
# Equivalent to: docker exec -it container /bin/bash

Stack Deployments

Deploy from Compose

Stacks > Add Stack

# Paste docker-compose.yml content:
version: '3.8'
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
  
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

Deploy from Git Repository

Stack > Add Stack > Git Repository

Repository URL: https://github.com/user/docker-compose-project
Repository reference: refs/heads/main
Compose path: docker-compose.yml

# Supports automatic redeployment on git updates

Environment Variables

Stack > Add Stack > Advanced

Environment variables:
DATABASE_URL=postgresql://user:pass@db:5432/app
API_KEY=your-api-key
DEBUG=false

Image Management

Pull Images

Images > Pull Image

# From Docker Hub
nginx:latest

# From private registry
registry.example.com/myapp:v1.0

Build Images

Images > Build Image

Upload Dockerfile or paste content:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]

Network Configuration

Create Network

Networks > Add Network

Name: my-network
Driver: bridge
Subnet: 172.20.0.0/16
Gateway: 172.20.0.1

Advanced options:
- Enable IPv6
- Internal network
- Attachable

Connect Container to Network

Container > Network > Join network
Select network and click "Join"

Volume Management

Create Volume

Volumes > Add Volume

Name: app-data
Driver: local

# Optional driver options
type: nfs
o: addr=192.168.1.100,rw
device: :/path/to/share

Browse Volume Contents

Volumes > [Volume] > Browse
# Graphical file browser for volume contents

User Management

Create Users

Users > Add User

Username: developer
Password: ******
Role: Standard user

Teams and Access Control

Teams > Add Team

Name: Development
Members: user1, user2

Environment access:
- Production: No access
- Staging: Read/Write

Registries

Add Private Registry

Registries > Add Registry

Type: Custom registry
Name: My Registry
URL: https://registry.example.com
Authentication: Username/Password

Docker Hub

Registries > Add Registry

Type: DockerHub
Username: your-username
Access Token: dckr_pat_xxxxx

Templates

App Templates

App Templates > Select Application

Pre-built templates for:
- Databases (MySQL, PostgreSQL, MongoDB)
- Web servers (Nginx, Apache)
- CMS (WordPress, Ghost)
- DevOps tools (Jenkins, GitLab)
- Monitoring (Grafana, Prometheus)

Custom Templates

Custom Templates > Add Template

Type: Container or Stack
Define reusable deployment configurations

API Access

Generate API Token

My Account > Access Tokens > Add Access Token

Name: automation-token
Copy token for API access

API Usage

# List containers
curl -H "X-API-Key: your-token" \
  https://portainer:9443/api/endpoints/1/docker/containers/json

# Create container via API
curl -X POST -H "X-API-Key: your-token" \
  -H "Content-Type: application/json" \
  -d '{"Image": "nginx", "name": "api-container"}' \
  https://portainer:9443/api/endpoints/1/docker/containers/create

Backup and Restore

Backup Portainer

# Backup volume
docker run --rm -v portainer_data:/data -v $(pwd):/backup \
  alpine tar czf /backup/portainer-backup.tar.gz -C /data .

Restore

docker run --rm -v portainer_data:/data -v $(pwd):/backup \
  alpine tar xzf /backup/portainer-backup.tar.gz -C /data

Portainer bridges the gap between Docker’s powerful CLI and the need for visual management, making container operations accessible while maintaining the flexibility power users expect. For teams adopting containers or managing complex deployments, Portainer provides the visibility and control needed to operate confidently in containerized environments.

Developer: Portainer.io

Download Options

Download Portainer – Docker Container Management UI

Version 2.19.4

File Size: 300 MB

Download Now
Safe & Secure

Verified and scanned for viruses

Regular Updates

Always get the latest version

24/7 Support

Help available when you need it