How-to Guide Create a Proxmox VE 5.0 All-in-One with Docker

Get KVM virtualization, ZFS/ Ceph storage and Docker (with a GUI) all-in-one setup

  1. Patrick
    This guide has how to create a KVM/ LXC virtualization host that also has Ceph storage and ZFS storage built-in. The same host will also have access to bare metal Docker-ce containers using Portainer as a GUI management.


    Main site post: Create the Ultimate Virtualization and Container Setup (KVM, LXC, Docker) with Management GUIs


    1. Install Proxmox VE 5.0
    2. Make the following sources adjustments so you can update:

    To fix this first add the no subscription sources:
    # nano /etc/apt/sources.list
    deb stretch pve-no-subscription
    Then remove the enterprise source:
    # nano /etc/apt/sources.list.d/pve-enterprise.list
    comment out (add a # symbol in front) of this line:
    # deb stretch pve-enterprise
    apt-get update && apt-get dist-upgrade -y
    3. Reboot
    4. Install docker-ce:
    apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
    curl -fsSL | apt-key add -
    apt-key fingerprint 0EBFCD88
    add-apt-repository "deb [arch=amd64] $(lsb_release -cs) stable"
    apt-get update && apt-get install docker-ce -y
    You should now be able to do docker ps and see no containers are running.

    5. Install Portainer with a persistent container
    Just for ease of getting started, we are going to make a directory on the boot drive. You should move this to other storage, but this makes it simple for a guide:
    mkdir /root/portainer/data
    Install Portainer for a Docker WebGUI
    docker run -d -p 9000:9000 --restart always -v /root/portainer/data:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
    Again, make the directory on ZFS storage or similar, not in the root directory.

    Wait about 15-30 seconds after you see Portainer start (you can check docker ps to see status.)

    6. Your logins:
    Proxmox GUI: https://<serverip>:8006
    Portainer GUI: http://<serverip>:9000
    7. Configure Docker to restart on boot:
    sudo systemctl enable docker
    At this point, you now have a GUI for everything you might want.
    dhettinger likes this.