Skip to content

Portainer

Simplified Container Management

portainer diagram

Portainer is an open-source container management platform designed to simplify the deployment, management, and monitoring of containerized applications and environments. With its intuitive interface, rich feature set, and support for multiple container runtimes, Portainer provides users with a powerful toolset for managing containerized workloads across various deployment scenarios.

Key Features

  • User-Friendly Interface: Portainer offers a clean and intuitive web-based interface for managing containers, images, volumes, networks, and other Docker or Kubernetes resources.
  • Deployment Orchestration: Portainer supports deployment and orchestration of containerized applications using Docker Swarm, Kubernetes, and other container orchestration platforms.
  • Container Lifecycle Management: Portainer enables users to create, start, stop, restart, and delete containers with ease, as well as monitor container health and resource usage.
  • Image Management: Portainer allows users to search, pull, push, and manage Docker images from public or private registries, facilitating streamlined image management and distribution.
  • Access Control and Authentication: Portainer offers role-based access control (RBAC) and LDAP/AD integration for user authentication and authorization, ensuring secure access to container management functionalities.

Getting Started

To get started with Portainer, deploy the Portainer container using Docker or Kubernetes, or install it directly on your host machine. Visit the official website for installation instructions, documentation, and resources. The website provides comprehensive guides and tutorials to help you set up and configure Portainer for your container environment.

Community and Support

Join the Portainer community on GitHub to engage with other users, ask questions, share your experiences, and contribute to the project. Stay informed about the latest updates, features, and best practices through community discussions and announcements.

Simplify container management and orchestration with Portainer—an intuitive and feature-rich platform for managing containerized applications and environments.

Volumes

/nfs-nas-swarm/data/portainer

Deployment

PORTAINER_LICENSE_KEY should be added.

Docker swarm file

version: '3.3'
services:
  agent:
    image: portainer/agent:latest
    environment:
      AGENT_CLUSTER_ADDR: tasks.agent
      PGID: '999'
      PUID: '911'
      TZ: Europe/Amsterdam
    volumes:
     - /var/run/docker.sock:/var/run/docker.sock
     - /var/lib/docker/volumes:/var/lib/docker/volumes
    networks:
     - portainer-internal
    logging:
      driver: json-file
    deploy:
      mode: global
      # replicas: 0
      # labels:
      #   sablier.enable: 'true'
      #   sablier.group: portainer
      #   traefik.docker.lbswarm: 'true'
      #   traefik.http.routers.portainer-https.middlewares: authelia, portainer-sablier@file
      placement:
        constraints:
         - node.labels.Arch != i686
  portainer:
    image: portainer/portainer-ce:latest
    command:
     - -H
     - tcp://tasks.agent:9001
     - --tlsskipverify
    environment:
      PGID: '999'
      PORTAINER_LICENSE_KEY: PORTAINER_LICENSE_KEY
      PUID: '911'
      TZ: Europe/Amsterdam
    ports:
     - 900:9000
     - 9443:9443
    volumes:
     - /var/run/docker.sock:/var/run/docker.sock:ro
     - /swarm/data/portainer:/data
    networks:
     - portainer-internal
     - traefik-public
    logging:
      driver: json-file
    deploy:
      replicas: 0
      labels:
        traefik.http.routers.portainer-https.entrypoints: https
        traefik.http.routers.portainer-https.tls.certresolver: le
        traefik.http.routers.portainer-http.middlewares: https-redirect
        traefik.http.routers.portainer-https.tls: 'true'
        traefik.constraint-label: traefik-public
        traefik.http.services.portainer.loadbalancer.server.port: '9000'
        traefik.http.routers.portainer-http.entrypoints: http
        traefik.http.routers.portainer-http.rule: Host(`portainer.vnerd.nl`)
        traefik.docker.network: traefik-public
        traefik.enable: 'true'
        traefik.http.routers.portainer-https.rule: Host(`portainer.vnerd.nl`)
        sablier.enable: 'true'
        sablier.group: portainer
        traefik.docker.lbswarm: 'true'
        traefik.http.routers.portainer-https.middlewares: authelia, portainer-sablier@file
      update_config:
        parallelism: 0
        failure_action: rollback
      placement:
        constraints:
         - node.role == manager
         - node.labels.worker==enabled
         - node.labels.Arch!=aarch64
networks:
  portainer-internal:
    driver: overlay
  traefik-public:
    external: true
secrets:
   PORTAINER_LICENSE_KEY:
     external: true

Notes

Comments